docker容器从入门到痴迷(推荐)

2020-06-17 06:58:37易采站长站整理

docker exec -it centos /bin/sh

查看容器运行过程中的日志


docker logs centos1

列出一个容器里面被改变的文件或者目录,列表会显示出三种事件,A 增加的;D 删除的;C 被改变的


docker diff centos1

和初始容器镜像项目,用户或系统增加/修改/删除了那些目录文件,都可以查看到。
查看容器里正在运行的进程


docker top centos1

拷贝容器里的文件/目录到本地服务器


docker cp centos1:/etc/passwd /tmp/
ls /tmp/passwd

通过网络 IP 地址也可以将容器的文件拷贝到服务器,这种方式比较方便。

停止容器


docker stop centos1

停止所有容器


docker kill $(docker ps -a -q)

启动容器


docker start centos1

删除单个容器


docker stop centos1
docker rm centos1

删除容器之前要先停止该容器的运行。

删除所有容器


docker kill $(docker ps -a -q)
docker rm $(docker ps -a -q)

3. 卷的概念

为了能够保存(持久化)数据以及共享容器间的数据,docker 提出了卷的概念。卷 Volume 就是容器的特定目录,该目录下的文件保存在宿主机上,而不是容器的文件系统内。

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过容器默认的文件系统,可以提供很多有用的特性:
(1)数据卷可以在容器之间共享和重用;
(2)对数据卷的修改会立马生效;
(3)对数据卷的更新,不会影响镜像;
(4)数据卷默认会一直存在,即使容器被删除。

注意:数据卷的使用,类似于  Linux下对目录进行挂载 mount,容器中被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。

创建、使用数据卷


mkdir -p /root/volume1
mkdir -p /root/volume2
docker run -d -v /volume1 --name='centos5' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1 --name='centos6' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1 -v /root/volume2:/volume2 --name='centos7' docker-centos6.10-hadoop-spark
docker run -d -v /root/volume1:/volume1:ro --name='centos8' docker-centos6.10-hadoop-spark

使用docker run命令创建容器,指定 -v 标记来创建一个数据卷并挂载到容器里;可以挂载多个数据卷;可以设置卷的只读属性;可以不指定服务器映射的目录,由系统自动指定目录,通过 docker inspect 来查看映射的路径。