目录

docker的普及已经不可阻挡,现在很多软件或服务都已经docker化了。本文讲述的是:docker image镜像与docker container容器的事情。
本文默认,你已经下载安装好了docker,并且也下载好了一些镜像。在运行后面的语句之前,请确认本地的docker服务已经开启。
如果已经熟练掌握了docker run、docker start、以及docker ps的话,那么,下一个应该知晓的命令就是docker exec。

查看已有容器

查看运行中的container容器,脚本如下:

docker ps

查看所有的container容器(可能一些容器,并没有启动,处于停止状态),脚本如下:

docker ps -a

如果没有运行docker服务的话,您可能会看到下面的错误输出。

docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

启动container容器

使用docker ps查看容器列表后,如果你的目标容器,并没有启动。那么请不要着急,请仔细看docker ps -a的最后一个项目names。这个还可以用来代替,就是列表中第一列中,那个长长的无序字母组合,就是id。

docker start <name>

比如,这里假设这个name就是root_App1_1。那么,启动root_App1_1这个容器的命令就是:

docker start root_App1_1      

宿主机重启后自动启动容器

可以执行如下命令设置--restart=always,使得重启宿主机后,还会自动启动该容器。
前提有两个:
宿主机输入:

system enable docker

就是说:宿主机开机时,会自动启动docker服务。
已经docker start了该container。

// docker start <name>
docker update --restart=always <name>

同理,如果不想让这个容器随着宿主机重启而重启的话,则应该设置--restart=no。

//docker start <name>
docker update --restart=no <name>

进入container

这一步是个需要角色转换的步骤,因为看到的命令行内容,从宿主机会变身为镜像内的bash。
命令就是:

docker exec -it <name> /bin/bash

假如容器名为root_App1_1,那么:

docker exec -it root_App1_1 /bin/bash

进入到了container之后,其实就是进入了另外一个简化版的centos服务器(一般来说,是centos)。此时,命令行里面的命令操作,都是针对container操作的了,而不是宿主机。这点要额外重点注意一下。

退出container

在container里面,修改了你所需要的事项后,退出container,回到真实世界(宿主机)的命令,就是:

exit

exit之后,就退出container的命令行,进入到宿主机的命令行环境上了。

转载自:

作者:苏南大叔【京城,非著名互联网从业人员】
来源:https://newsn.net/say/docker-exec.html
打赏:https://newsn.net/shang.html

加群:https://newsn.net/group.html

最后编辑:2021年01月27日

发表评论