4.操作容器
容器是镜像的实例,有独立的运行环境,Docker不是虚拟机,容器就是进程
4.1启动容器
4.1.1新建容器并启动
如果没有该镜像,会去自动拉取该镜像
#指令格式
docker [可选项1] 软件名[:标签(指定版本)] [bash]
#可选项
-t:让Docker分配一个伪终端并绑定到容器标准输出上
-i:让容器标准输出一直打开
#bash
启动交互式终端,我们基于可以像在shell中输入命令一样,在容器中输入
#例子
docker run -t -i ubuntu:18.04 bash
4.1.2 启动被终止的容器
#查看容器状态
docker ps -a
#启动容器 格式
docker start 容器ID
#重启容器
docker restart 容器ID
#例子
docker start 396fdbb1ed29
4.2守护态运行
更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现。
#格式
docker run -d 镜像ID(通过docker image l获得,不是docker ps(是查看容器))
#例子
docker image ls #查看镜像ID
docker run -d 3941d3b032a8
查看容器信息
docker container ls
查看容器输出信息
docker container logs [container ID or NAMES]
4.3终止
终止容器
docker container ls #查看容器ID
docker container stop 容器ID
PS:
只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。
查看已经终止的容器
docker container ls -a
处于终止状态的容器,可以通过 docker container start 命令来重新启动。
4.4 进入容器
在使用 -d 参数时,容器启动后会进入后台。
某些时候需要进入容器进行操作,包括使用 docker attach 命令或 docker exec 命令,推荐大家使用 docker exec 命令,原因会在下面说明。
4.4.1 attach命令
#运行容器
docker image ls #查看镜像ID
docker run 3941d3b032a8 #run后面跟的是镜像ID
docker container ls #查看运行的容器 其容器ID
docker attach ae6f32220fd1 # attach后跟 容器ID
#此时进入容器
#输入exit退出容器,而且容器会终止
4.4.2 exec命令
docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。
只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
#运行容器
docker image ls #查看镜像ID
docker run 3941d3b032a8 #run后面跟的是镜像ID
docker container ls #查看运行的容器 其容器ID
docker exec -it ae6f32220fd1 bash # exec后跟 容器ID
#此时进入容器
#输入exit退出容器,而且容器会终止
如果从这个 stdin 中 exit,不会导致容器的停止。这就是为什么推荐大家使用 docker exec 的原因。
4.5 导出和导入
4.5.1 导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
#查看已经停止的容器
docker container ls -a
#创建要导出后保存的文件夹
mkdir 文件夹名
#进入文件夹
cd 文件夹名
#导出 格式 docker export 容器ID > 导出后的名称.tar
ocker export 396fdbb1ed29 >ubuntu.tar
#然后在该文件夹中,发现导出文件,说明确实导出成功
4.5.2 导出容器快照
可以使用 docker import 从容器快照文件中再导入为镜像
#格式 docker import 文件/url(最后结尾是.tar文件) 软件名:标签
docker import ubuntu.tar test:new
PS:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
4.6 删除容器
4.6.1删除容器
可以使用 docker container rm 来删除一个处于终止状态的容器
#查看所有容器
docker container ps -a
#删除容器
#格式
docker container rm 容器名字或容器ID
#例子
docker container rm trusting_newton
4.6.2 清理所有处于终止状态的容器
用 docker container ls -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器
#查看所有已经创建的包括终止状态的容器
docker container ls -a
#清理掉所有处于终止状态的容器
docker container prune
更多内容,请微信搜索关注公众号:MiaoA知识
这个公众号所有分享知识免费,希望你可以从中学到一些知识,感叹到这个公众号的奇妙