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

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


咨詢
建站咨詢
