手工制作docker镜像-多服务ssh+nginx

一个容器多个服务
基于centos6.9系统添加yum源与epel源
安装nginx、ssh服务

yum install nginx openssh-server -y
  • 1.

因镜像系统为纯系统,没有root密码,所以需要配置密码

echo 123456 | passwd --stdin root
  • 1.

注:因配置yum源存在坑,详见centos6源配置
将centos6.9容器提交为镜像文件

docker commit 662f4e76ae47 centos6.9-ssh-nginx:v1
  • 1.

方法一-命令启动服务:

根据已提交镜像文件“centos6.9-ssh-nginx:v1”创建启动容器,执行命令启动容器和启动服务

docker run -d -p 1022:22 -p 80:80 centos6.9-ssh-nginx:v1 su -s /bin/bash -c "/etc/init.d/sshd start;nginx -g 'daemon off;'" root
  • 1.

09.1手工制作docker镜像-多服务ssh+nginx_插入图片

验证测试
连接ssh服务
09.1手工制作docker镜像-多服务ssh+nginx_插入图片_02

测试访问web
09.1手工制作docker镜像-多服务ssh+nginx_nginx_03

方法二-脚本启动服务:

当前镜像文件里面没有可以执行的脚本,将服务直接运行并且夯筑容器。下面就是命令执行的创建的容器
09.1手工制作docker镜像-多服务ssh+nginx_多服务ssh_04

进入容器中添加可执行的脚本,并且脚本内容为启动服务并且夯筑容器
在容器中直接创建脚本,添加nginx服务启动和sshd服务启动并且夯住即可;
09.1手工制作docker镜像-多服务ssh+nginx_centos_05

提交成新的镜像文件为v2

docker commit 6497461e6ebd centos6.9-ssh-nginx:v2
  • 1.

09.1手工制作docker镜像-多服务ssh+nginx_nginx_06

基于镜像v2版本创建容器

docker run -d -p 1022:22 -p 80:80 centos6.9-ssh-nginx:v2 /bin/bash /init.sh
  • 1.

09.1手工制作docker镜像-多服务ssh+nginx_手工制作docker镜像_07

验证nginx服务访问正常
ssh服务连接正常
09.1手工制作docker镜像-多服务ssh+nginx_多服务ssh_08