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

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

yum install nginx openssh-server -y

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

echo 123456 | passwd --stdin root

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

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

方法一-命令启动服务:

根据已提交镜像文件“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

在这里插入图片描述

验证测试 连接ssh服务 在这里插入图片描述

测试访问web 在这里插入图片描述

方法二-脚本启动服务:

当前镜像文件里面没有可以执行的脚本,将服务直接运行并且夯筑容器。下面就是命令执行的创建的容器 在这里插入图片描述

进入容器中添加可执行的脚本,并且脚本内容为启动服务并且夯筑容器 在容器中直接创建脚本,添加nginx服务启动和sshd服务启动并且夯住即可; 在这里插入图片描述

提交成新的镜像文件为v2

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

在这里插入图片描述

基于镜像v2版本创建容器

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

在这里插入图片描述

验证nginx服务访问正常 ssh服务连接正常 在这里插入图片描述