Docker文件目录和容器内部操作
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$