七、手动制作docker镜像
系列导航
第一步:启动一个基础的容器
第二步:把安装好的容器提交成镜像
第三步:验证容器是否好用
(1)安装单个服务
[root@node03 opt]# docker run -it -p 1022:22 centos:6.9
下载yum源
[root@cd9754a81e57 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 8078 0 --:--:-- --:--:-- --:--:-- 8354
安装ssh服务
[root@cd9754a81e57 opt]# yum install openssh-server -y
启动ssh服务
注:ssh服务第一次安装需要启动一下,启动后会自动生成秘钥对,才能正常使用。
[root@cd9754a81e57 opt]# service sshd start
Generating SSH2 RSA host key: [ OK ]
Generating SSH1 RSA host key: [ OK ]
Generating SSH2 DSA host key: [ OK ]
Starting sshd: [ OK ]
设置容器centos的root密码
[root@cd9754a81e57 opt]# passwd
Changing password for user root.
把安装好ssh服务的容器提交为镜像
[root@node03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd9754a81e57 centos:6.9 "/bin/bash" 28 minutes ago Up 28 minutes sweet_poincare
[root@node03 ~]# docker commit cd9754a81e57 centos6.9_ssh_yc:v1
docker commit eb9819674b93 oracle-12c-tour:v1
sha256:7540332c4c1728f4f24e9999641965cfa937e2c65ae77f2736b2a111ca2d21c1
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos6.9_ssh_yc v1 7540332c4c17 7 seconds ago 332MB
启动镜像验证服务可用性
[root@node03 ~]# docker run -d -p 1022:22 centos6.9_ssh_yc:v1 /usr/sbin/sshd -D
63e897aa174b15e651cf28376ecab8cd2bf3f97afe2a29bbbe8f54f9b14663e0
使用ssh连接工具可以正常连接说明镜像制作成功
(2)安装多个服务
如果需要启动多个服务需要写脚本hung住服务程序
例如ssh服务和nginx同时提供服务
<1>在容器里写脚本
多个启动脚本时最后一个脚本hung住就可以。
<2>提交成镜像
<3>启动容器
注:因为没有给脚本增加权限所有必须加 /bin/bash