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

root@kobe:/opt/software/temp/test# docker ps

CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                    NAMES

688e83c55129    mysql        "docker-entrypoint.s…"  6 days ago     Up 3 seconds    0.0.0.0:3306->3306/tcp            first-mysql

688e83c55129    这个就是容器的ID了

3、新建需要复制的测试文件

示例位置和文件名    /opt/software/temp/test/test.txt

4、复制到容器中

docker cp /opt/software/temp/test/test.txt 688e83c55129:/test/

5、进入容器查看是否已复制

docker exec -it 688e83c55129 bash

6、从容器复制文件到主机

先删除主机上的test.txt,然后

docker cp 688e83c55129:/test/test.txt /opt/software/temp/test/

例如: 容器路径要参考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