Docker之容器

1、容器

 

 

 

2、容器相关命令

2.1、运行容器(docker run)

通过 docker run [options] image 命令来运行一个容器。

options 参数说明:

  • -i:以交互形式运行容器。通常与 -t 同时使用。
  • -t:为容器重新分配一个伪输入终端。
  • --name:为运行的容器指定名称。如果不指定名称,docker会为该容器随机指定一个名称。比如:docker run -it --name mytomcat

 

下面运行 centos 容器:

Docker之容器

执行运行命令之后,可以看到 root 后面是容器的 id,此时说明 centos 容器已经启动成功,并且此时是进入了该容器的输入终端中。

 

2.1.1、启动容器(docker start)

我们可以先通过 docker ps -a 命令来查看所有正在运行和之前运行过的容器,然后通过 docker start 容器ID 的命令来启动已停止的容器。

使用示例:

Docker之容器

 

2.1.2、重启容器(docker restart)

正在运行的容器或者已经停止的容器都可以通过 docker restart 容器ID 命令来重启容器。

使用示例:

Docker之容器

 

2.1.3、以后台形式运行容器(docker run -d)

 -d 参数意思是以后台模式启动容器。

通过该参数运行容器,你会发现容器会自动退出。因为 docker 容器运行必须要有一个前台进程,否则容器会自动退出,这个是 docker 的机制问题。

下面运行 centos 容器,运行过后通过 docker ps -a 命令可以发现已经自动退出了:

Docker之容器

 

所以一般用 -d 参数时搭配 -it 参数一起使用,此时在运行容器时不会自动进入容器,但是容器也不会自动退出。

Docker之容器

 

2.2、停止容器(exit、docker stop、docker kill)

如果我们进入了容器的终端,此时可以直接通过 exit 命令来退出并停止容器。exit 命令在退出容器的同时也关闭容器,进入docker容器后如果退出容器,容器就会变成 Exited 的状态。

或者直接通过 ctrl+P+Q 快捷键来控制容器不停止只退出。

Docker之容器

 

通过 stop 和 kill 命令也能关闭容器:

docker stop 容器id   #正常关闭容器
docker kill 容器id     #暴力关闭容器

 

2.3、查看运行的容器列表(docker ps)

可以通过 docker ps 命令来查看所有运行的容器。

docker ps   # 查看当前正在运行的容器
docker ps -a  # 查看当前运行和所有运行过的容器
docker ps -l #查看上一个运行的容器

示例如下:

Docker之容器

可以看到查询结果的列名中,CONTAINER ID 就是容器的 id,IMAGE 就是镜像名称,status 表示容器的状态(exited表示已经退出停止,up表示正在运行),NAMES 就是容器的名称。 

 

2.4、重新进入容器(docker attach、docker exec)

在我们使用 -itd 命令来以后台模式运行容器,或者是在运行容器时使用 ctrl + P +Q 来退出容器但不停止容器时,此时我们可以通过 docker attach 或者是 docker exec 命令来重新进入容器。

docker attach 命令会直接进入该容器的终端中,并且如果从该命令进入,然后退出容器的话会导致容器停止。如下执行完 attach 命令后,可以看到终端名称发生了改变:

Docker之容器

 

docker exec 命令可以在宿主机外直接对容器进行操作,当然也可以进入容器的终端。

Docker之容器

如果从 exec 命令进入容器,然后退出容器的话,容器不会停止,所以一般推荐大家使用 docker exec 命令。

 

2.5、删除容器(docker rm)

docker rm 容器ID  #删除已停止运行的容器。如果该容器正在运行,可能会提示报错
docker rm -f 容器ID  #强制删除容器,可删除正在运行的容器。实际上就是先停止后删除

使用示例:

Docker之容器

 

2.6、查看容器日志(docker logs)

通过 docker logs 容器ID 命令可查看容器日志。通过加参数  docker logs -t -f 容器ID 可保持一直输出容器最新日志在控制台。

 

2.7、查看容器内运行的进程(docker top 容器id)

通过 docker top 容器id 命令可查看该容器内运行的进程:

Docker之容器

 

2.8、查看容器内部细节(docker inspect 容器id)

通过 docker inspect 容器id 命令可查看该容器内部细节,可以看到是一个 json 格式数据:

Docker之容器

 

2.9、复制容器内文件到宿主机(docker cp )

可通过 cp 命令将容器内的文件复制到本宿主机上来,语法如下:

docker cp 容器ID:容器内的绝对路径 本宿主机路径

#示例:
docker cp f429600985ba:/usr/aa.log /root

 

Docker之容器

上一篇:深入解析Windows操作系统笔记——CH3系统机制


下一篇:System.gc() 与 Runtime.gc()的区别