su root
rz -y
查看日志
进入容器
sudo docker exec -it “容器ID” bash
将主机的文件复制到容器里:
sudo docker cp 主机目录 容器ID:容器目录
退出container 输入: exit 1 或者按键: Ctrl + C
进入容器:(不要用这种 docker attach)
docker attach 44fc0f0582d9
但是这种方式有缺点,当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
有同学在docker下安装了nginx 但是不知道目录在哪,可以使用命令:sudo find / -name "50x.html"
因为nginx里必定会有50x.html,所以查找它,结果发现nginx的目录在docker容器里,如果操作它,就需要进入容器的shell。
必须先启动容器:sudo docker start “容器ID”
然后使用下边的命令进入shell:sudo docker exec -it “容器ID” bash
将主机的文件复制到容器里:sudo docker cp 主机目录 容器ID:容器目录
2、查看容器ID
1 2 3 4 |
|
3、新建需要复制的测试文件
示例位置和文件名 /opt/software/temp/test/test.txt
4、复制到容器中
1 |
|
5、进入容器查看是否已复制
1 |
|
6、从容器复制文件到主机
先删除主机上的test.txt,然后
1 |
|
例如: 容器路径要参考DockerFile中 # 设置工作目录 WORKDIR /app 的路径,
docker
cp
688e83c55129:
/app/Logs/test
.txt
/www
以上就是主机与容器之间传输文件的方式了,简单易用。
//以elasticsearch容器为例
//运行es
docker run -d -p 9200:9200 elasticsearch:5.4
//查看已运行的容器
docker ps
//进去容器内部,找到需要拷贝的文件及目录
docker exec -it 2c2600fb60f8 /bin/bash
//从容器中退出
exit
//将container id为4db8edd86202的容器内elasticsearch.yml文件拷贝到宿主机指定目录下:
docker cp 4db8edd86202:/usr/share/elasticsearch/config/elasticsearch.yml /home/haopeng/es
实例:
进入容器 大会议室网关
docker exec -it 74b4c493f350 bash
docker cp 74b4c493f350:/app/SmartClassroomServer.db /root/hwt/
docker cp 74b4c493f350:/app/ /root/hwt/SmartGateway
docker exec -it 0e6402e606b6 bash
docker cp 0e6402e606b6:/app/appsettings.json /root/hwt/
docker cp 0e6402e606b6:/app/ /root/hwt/SmartWeb
docker cp /root/hwt/appsettings.json 0e6402e606b6:/app/