Docker默認的文件目錄位於Linux server的/var/lib/docker 下面。目錄結構如下
|-----containers:用於存儲容器信息
|-----image:用來存儲鏡像中間件及本身信息,大小,依賴信息
|-----network
|-----swarm
|-----tmp:docker臨時目錄
|-----trust:docker信任目錄
|-----volumes:docker卷目錄
還可以通過docker指令確認文件位置:
docker info
查看某個容器的文件目錄:
docker exec 容器name ls
#docker鏡像內的文件互相拷貝 1、將本地文件拷貝到docker 鏡像內 docker cp 本地路徑 容器Id或name:容器目錄 docker cp /Users/howey/Documents/apache-maven-3.5.2/ containername:/opt 2、將docker內文件拷貝到本地文件夾內 docker cp 容器Id或name:本地路徑 鏡像路徑 docker cp containername:/Users/howey/Documents/apache-maven-3.5.2 /opt/
如何進入容器內部呢:使用docker exec可以進入Docker容器並運行指令
#docker exec 在運行的容器中執行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
-
-d :分離模式: 在后台運行
-
-i :即使沒有附加也保持STDIN 打開
-
-t :分配一個偽終端
通過 exec 命令對指定的容器執行 bash:
# docker exec -it 容器ID或name bash
-it : 目前的理解淺薄,就是要等在容器內的命令執行完畢才會出來到當前操作; 沒有-it的加 就相當於在容器內執行一下命令,不等容器內部是否執行完畢直接出來.
案例:在容器內創建sqlserver目錄,如下所示,安裝sqlserver后實際上已經自動創建了data目錄,映射的時候無需再次創建直接使用即可.
# docker exec -it sqlserver bash
mssql@649b4b891718:/$ mkdir /var/opt/mssql/data mkdir: cannot create directory '/var/opt/mssql/data': File exists mssql@649b4b891718:/$ ls #查看目錄列表 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var mssql@649b4b891718:/$ cd /var/opt #轉到opt目錄 mssql@649b4b891718:/var/opt$ ls #查看opt目錄 mssql mssql@649b4b891718:/var/opt$ cd mssql mssql@649b4b891718:/var/opt/mssql$ ls data log secrets mssql@649b4b891718:/var/opt/mssql$