暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker篇_02_交互式操作容器

原创 shlei6067 2022-09-28
1622

一、交互式启动容器
Docker 交互式启动有两种,一种是前台交互式、另一种是后台守护式

其中前台交互式启动适合ubuntu、Centos、nginx等,因为该类没有前台进程,如果使用后台守护式启动会导致容器立即自杀。

后台守护式启动适合Redis这些有前台进程的镜像,因容器不会自动挂掉,且若Redis使用前台交互式启动,会因使用人员不小心关掉终端,导致Redis挂掉产生一系列问题,所以适合后台守护式启动。

Docker可以以交互式方式运行镜像,达到启动容器目的,其中有如下一些常用参数:
–name=“容器新名称” 为容器指定一个名称
-d 后台运行容器并返回容器ID,意即启动守护式容器(后台运行)
-i 以交互式模式运行容器,通常与 -t 搭配同时使用
-t (tty) 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P 大写P,代表随机端口映射
-p 小写p, 代表指定端口映射

例一:前台交互启动ubuntu

前台交互式启动ubuntu
[root@openstack ~]# docker pull ubuntu
[root@openstack ~]# docker images
[root@openstack ~]# docker ps -a
[root@openstack ~]# docker run -it ubuntu /bin/bash

例二:前台交互式启动Redis

前台交互式启动ubuntu
[root@openstack ~]# docker pull redis
[root@openstack ~]# docker images
[root@openstack ~]# docker run -it redis
此时,打开另一个会话,可以看到Redis进程,并可以连接Redis数据库。

当在执行前台交互式启动Redis的会话窗口执行Ctrl+C,就会将Redis挂掉,报如下信息:
此时,也无法再查看到Redis进程:
例三:后台守护式启动Redis

前台交互式启动ubuntu
[root@openstack ~]# docker run -td --name redis -p 6379:6379 redis
[root@openstack ~]# docker ps -a
[root@openstack ~]# ps -ef|grep redis
[root@openstack ~]# docker exec -it 84be3cb99c8f /bin/sh

二、退出容器方式
推出容器方式有两种。

exit:run进去容器,exit退出,容器停止
ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止
三、进入已运行容器
docker exec -it 容器ID /bin/bash
exec 是在容器中打开新的终端,并且可以启动新的进程,因为是新终端,用exit退出,不会导致容器的停止。

docker attach 容器ID
attach 直接进入容器启动命令的终端,不会启动新的进程
如果进入前台交互式启动容器,,用exit退出,会导致容器的停止。用ctrl+p+q,不会导致容器停止。如果进入后台守护式启动容器,不仅无法进行交互,并且ctrl+c会导致守护式进程停止。

通常使用 docker run -d image:tag /bin/bash启动容器,然后再使用 docker exec -it 容器ID /bin/bash

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论