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$

 

posted @ 2020-05-08 13:07  Merray  Views(38132)  Comments(1Edit  收藏  举报