新聞中心
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器或者 Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,下面我們?cè)敿?xì)介紹如何使用 Docker 映射宿主機(jī)目錄。

Docker 鏡像創(chuàng)建
我們需要?jiǎng)?chuàng)建一個(gè) Docker 鏡像,在本地有一個(gè)目錄,我們想要把這個(gè)目錄映射到 Docker 容器中,假設(shè)我們的目錄結(jié)構(gòu)如下:
/home/user/myapp
├── app1
│ ├── config.yml
│ └── server.py
└── app2
├── config.yml
└── client.py
我們可以使用以下命令創(chuàng)建一個(gè) Docker 鏡像:
docker build -t myapp_image .
Dockerfile 編寫
接下來,我們需要編寫一個(gè) Dockerfile,用于構(gòu)建我們的鏡像,在 myapp 目錄下創(chuàng)建一個(gè)名為 Dockerfile 的文件,內(nèi)容如下:
FROM python:3.8-slim WORKDIR /app COPY requirements.txt requirements.txt RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "server.py"]
這個(gè) Dockerfile 基于官方的 Python 3.8 slim 鏡像,將工作目錄設(shè)置為 /app,復(fù)制 requirements.txt 文件并安裝依賴,然后將當(dāng)前目錄的內(nèi)容復(fù)制到容器中,并設(shè)置容器啟動(dòng)時(shí)運(yùn)行 server.py。
運(yùn)行 Docker 容器并映射宿主機(jī)目錄
現(xiàn)在我們可以運(yùn)行 Docker 容器并映射宿主機(jī)目錄了,運(yùn)行以下命令:
docker run -d --name myapp_container --mount type=bind,source=/home/user/myapp,target=/app myapp_image python server.py
這個(gè)命令會(huì)運(yùn)行一個(gè)名為 myapp_container 的容器,使用剛剛創(chuàng)建的鏡像 myapp_image,并將宿主機(jī)的 /home/user/myapp 目錄映射到容器的 /app 目錄,這樣,當(dāng)我們?cè)谌萜髦行薷?server.py 或者 config.yml 文件時(shí),宿主機(jī)上的對(duì)應(yīng)文件也會(huì)同步更新。
相關(guān)問題與解答
1、如何查看正在運(yùn)行的 Docker 容器?
答:可以使用 docker ps 命令查看正在運(yùn)行的 Docker 容器,如果想查看所有的容器(包括已經(jīng)停止的),可以使用 docker ps -a 命令。
2、如果我想讓 Docker 容器在后臺(tái)運(yùn)行,怎么辦?
答:可以在運(yùn)行容器時(shí)加上 -d 參數(shù),docker run -d --name myapp_container myapp_image python server.py,這樣容器會(huì)在后臺(tái)運(yùn)行。
3、如何停止并刪除一個(gè) Docker 容器?
答:可以使用 docker stop 命令停止容器,然后使用 docker rm 命令刪除容器。docker stop myapp_container && docker rm myapp_container。
4、如果我想在多個(gè) Dockerfile 中共享一些配置文件和代碼,怎么辦?
答:可以將這些配置文件和代碼放在一個(gè)單獨(dú)的目錄中,然后在每個(gè) Dockerfile 中使用 COPY ... FROM ... 或者 ADD ... FROM ... 指令將其復(fù)制到相應(yīng)的位置,這樣就可以避免重復(fù)編寫相同的代碼和配置文件。
網(wǎng)站欄目:docker映射容器目錄到宿主機(jī)
當(dāng)前鏈接:http://m.fisionsoft.com.cn/article/cooghcd.html


咨詢
建站咨詢
