docker学习笔记
进入当前正在运行的容器以及从容器内拷贝文件到主机
①进入当前正在运行的容器
#通常容器都是在后台运行的,需要进入容器,修改一下设置
#命令
docker exec -it 容器id bashShell
#测试
PS C:\Users\Administrator.DESKTOP-6HRR85P> docker exec -it 576b825c1e22 /bin/bash
[root@576b825c1e22 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@576b825c1e22 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:00 ? 00:00:00 /bin/sh -c while true;do echo 830102019016;sleep 1;done
root 1722 0 0 13:28 pts/0 00:00:00 /bin/bash
root 1782 1 0 13:29 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root 1783 1722 0 13:29 pts/0 00:00:00 ps -ef
#方式二
docker attach 容器id
#测试
PS C:\Users\Administrator.DESKTOP-6HRR85P> docker attach 576b825c1e22
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
830102019016
PS C:\Users\Administrator.DESKTOP-6HRR85P>
#docker exec #进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach #进入容器正在运行的终端,不会启动新的进程
#② 从容器内拷贝文件到主机
docker cp 容器id:容器内路径 目的的主机路径
#测试
#进入文件内部,新建一个文件,退出
PS C:\Users\Administrator.DESKTOP-6HRR85P\op_models> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
PS C:\Users\Administrator.DESKTOP-6HRR85P\op_models> docker run -it centos /bin/bash
[root@188385a22186 /]# cd /home
[root@188385a22186 home]# ls
[root@188385a22186 home]# touch test.java
[root@188385a22186 home]# exit
exit
#将这个文件拷贝出来到我们的主机上
PS C:\Users\Administrator.DESKTOP-6HRR85P\op_models> docker cp 188385a22186:/home/test.java C:\Users\Administrator.DESKTOP-6HRR85P
PS C:\Users\Administrator.DESKTOP-6HRR85P\op_models>
目录: C:\Users\Administrator.DESKTOP-6HRR85P
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/1/11 22:17 0 test.java
#拷贝是一个手动过程,使用 - v 卷的技术可以实现自动同步