docker 学习笔记

1 交互式登陆:

systemctl start docker.service
docker ps -a
docker rm -f `docker ps -aq`
docker ps -a
docker run -d --name vm1 nginx
3f3ad0e94c46357dff1bcd08c64f0d0a5c97638345e7e609f341a3708342d35a
docker container attach vm1
#该命令会打断nginx服务,nginx后面有cmd命令我们发现是无法进入vm1内部的 

docker ps 
docker start vm1
docker ps
docker run -it --name vm2 nginx bash #run=create+start;交互式建立一个vm2 nginx镜像bash会覆盖nginx之后的CMD
root@4f48db4019b7:/# 

docker container attach vm2
root@4f48db4019b7:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@4f48db4019b7:/# [root@foundation30 ~]# 
docker container exec -it vm1 bash
root@3f3ad0e94c46:/# hostname
3f3ad0e94c46
root@3f3ad0e94c46:/# 

镜像分层——->共享;

2. 开启多个服务在一个镜像中:

Dockerfile 负责安装;supervisor负责开启多个服务

因为cmd命令只能有一条所以想要同时开启多个服务定制到镜像中就需要调用一个管理进程来管理这些并行进程的运行启动。

supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启。

cd /tmp/docker/
vim Dockerfile 

FROM rhel7
EXPOSE 80:22
COPY dvd.repo /etc/yum.repos.d/dvd.repo
RUN  rpmdb --rebuilddb && yum install -y httpd openssh-server openssh-client supervisor && yum clean all && ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" &&  ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && ssh-keygen -q -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" &&  echo root:westos | chpasswd
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord"
vim supervisord.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值