Docker文件目录和容器内部操作

Docker默认的文件目录位于Linux server的/var/lib/docker 下面。目录结构如下

Docker文件目录和容器内部操作

|—–containers:用于存储容器信息

|—–image:用来存储镜像中间件及本身信息,大小,依赖信息

|—–network

|—–swarm

|—–tmp:docker临时目录

|—–trust:docker信任目录

|—–volumes:docker卷目录

还可以通过docker指令确认文件位置:

docker info

Docker文件目录和容器内部操作

查看某个容器的文件目录:

docker exec 容器name ls

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

Original: https://www.cnblogs.com/merray/p/12849770.html
Author: Merray
Title: Docker文件目录和容器内部操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/534447/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球