docker学习-容器中的进程

本文介绍了如何进入Docker容器以及在容器中执行命令。通过`docker exec`进入nginx容器,展示了容器内进程的管理和交互,如安装软件、使用`ps`命令。讨论了在容器中使用`exit`与`ctrl+p+q`的区别,以及如何通过发送信号来管理容器内的主进程,如重载nginx配置。最后强调了Docker的进程隔离原理,通过`docker top`和`ps`命令比较了宿主机与容器中进程ID的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进入容器nginx:docker exec -it nginx-demo /bin/bash

[root@192 docker]# docker exec -it nginx-demo /bin/bash
root@9afab2acfaa4:/#

执行上述命令,命令提示符会从host主机的提示符变成容器的提示符(host主机就是容器所在的主机),容器的提示符是root@9afab2acfaa4:/#,9afab2acfaa4正是容器的id,也就是docker ps命令时看到的nginx-demo的容器id

可以查看目录下的容器:

root@9afab2acfaa4:/# cd /etc/nginx
root@9afab2acfaa4:/etc/nginx# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
在容器中使用vi/vim指令去修改配置文件,则会报错,因为镜像中不包含vi/vim(原因是创建镜像是为了减少镜像的体积,编辑器并不是以来的程序,所以未打包到镜像),所以如果要改变配置文件,可以将配置文件拷贝到宿主机中,修改之后再拷回去

#将文件拷贝到当前目录中 ./表示当前目录,nginx-demo表示当前容器名称
[root@192 docker]# docker cp nginx-demo:/etc/nginx/nginx.conf ./
[root@192 /]# cd /root/root/setup/docker
[root@192 docker]# ls
docker-20.10.8.tgz  docker.bash  hello-world.tar.gz  install.sh  nginx.conf

此时就可以使用vim命令,修改之后重新拷贝回去

#将当前目录下的文件拷贝到指定容器的目录下
[root@192 docker]# docker cp ./nginx.conf nginx-demo:/etc/nginx/nginx.conf

在容器中的shell中执行exit命令会结束当前shell,如不想结束当前shell,可以是哦那个组合键ctrl+p+q 

docker启动容器中的it是什么意思:-i表示interactive,即交互模式 -t参数表示一个伪终端,这两个参数在在一起终端中以交互模式运行指定的程序

由于容器中年没有v/vim等指令包,可以使用apt-get的软件源安装需要的软件,此处在nginx-demo容器中安装procps包,以便在容器中执行ps命令,方便之后的测试,同理,也可以安装vim,方便再容器中直接编辑文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值