栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

centos8+docker系列(3)——docker容器创建和运行方式

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

centos8+docker系列(3)——docker容器创建和运行方式

前面两篇文章已经详细讲解了关于docker安装、镜像操作和简单的容器创建内容:
基于centos8.0环境下docker安装
centos8+docker系列(2)——镜像image操作
本文着重讲解在生产环境中,常见的两种容器创建和运行方式

运行容器命令run

参数:

  • -d:后台运行容器,并返回容器id,即启动守护式容器
  • -i:以交互模式运行容器
  • -t:为容器重新分配一个伪终端
  • –name:手动为容器指定一个名称
  • -p:指定端口映射
  • -v:挂载卷
创建容器的两种方式 1.启动且进入交互式容器

查看镜像:

sudo docker image ls

发现有centos7镜像,以此为基础创建交互式容器并进入:

sudo docker container run -it --name cs7 centos:7 

如果只是想创建容器并不进入,可以执行:

sudo docker container create -it --name cs7 centos:7 

然后在需要的时候,执行启动和进入容器的命令:

sudo docker container start cs7 //启动容器

sudo docker container attach cs7 //进入容器

退出容器分两种:

exit //直接退出容器,并且关闭容器,重新进入需要重新启动容器。

ctrl+p+q //静默退出,退出后并不关闭容器,下次可直接进入。注意p和q的先后顺序。
2.创建守护式容器

docker运行机制:docker容器运行就必须有一个前台进程,容器运行的命令如果不是一直挂起的命令(如:tail -f;top或者/bin/bash),
就会自动退出
创建守护式容器:

sudo docker container run -d --name cs7 centos:7

注意参数的不同,创建守护式容器使用的参数是“-d”

交互式容器因为有交互界面的存在,容器一直有事可做,所以不会自动退出,守护式容器如果没有具体业务,开启后会随即关闭。

我们为守护式容器创建一个循环的业务,具体代码如下,但我们不需要关心后面执行的语句,那不是我们关注的重点:

sudo docker run -d --name cs7 centos:7 /bin/bash -c "while true;do echo hello world;sleep 3;done" 

打印容器后,发现cs7容器并没有直接关闭,一直在运行。如图:


此时查看日志:

sudo docker container logs 

发现控制台一直在打印“hello world”,容器有事干,所以没关闭。
此时如果我们用attach命令进入容器,会发现不论在终端输入什么命令,它都会一直打印“hello world”,连退出容器的命令都无法执行。如图:

所以需要用“exec”进入容器,它与attach的区别是,会启动新的进程(伪终端),从而不受容器内业务影响:

sudo docker container exec -it cs7 /bin/bash
3.查看守护式容器内容

很多时候,我们需要知道某个容器究竟在执行什么操作,这时候需要借助命令行:

sudo docker container exec cs7 ps -ef

执行结果如图:

4.创建并保持容器不关闭(并不进入容器)

在实际生产环境中,我们会有很多情况需要创建一个容器,但是容器内可能并未产生具体的业务,所以我们也不需要进入容器操作什么。
此时,我们需要用结合交互式和守护式的参数,-it产生的交互式作为守护进程,维持守护式容器的开启,代码如下:

sudo docker container run -itd --name cs7 centos:7 

此时,创建的容器时守护式的,并不会进入容器,并且容器不会直接关闭。这是生产环境中创建容器使用最多的一种方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号