基于Dockerfile创建镜像
前提: 有基础的docker环境
构建SSHD镜像
下载基础镜像
docker pull centos

建立工作目录并创建Dockerfile
mkdir sshd
cd sshd
vim Dockerfile

在Dockerfile中添加:
##指明基础镜像
FROM centos:latest
##维护镜像的用户信息
MAINTAINER The CentOS Project<cloud-ops@centos.org>
##镜像操作命令
RUN yum -y install openssh-server openssl-devel net-tools lsof telnet
RUN yum install -y passwd
RUN echo "456" | passwd --stdin root ##输入登录密码
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
##开启22端口
EXPOSE 22
##启动容器时执行指令
CMD ["/usr/sbin/sshd","-D"
生成镜像
docker build -t sshd:new .

启动容器并修改密码
docker run -d -P sshd:new
ssh localhost -p 49155 ##输入成功启动容器后的端口号


构建Systemctl镜像
创建目录
mkdir systemctl
cd systemctl

创建并编写Dockerfile文件
使用vim Dockerfile创建并在Dockerfile中添加如下内容:
FROM sshd:new
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *;do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
生成镜像
docker build -t local/c7-systemd:latest .

启动容器并验证
docker run --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro local/c7-systemd:latest /sbin/init &

其他镜像生成过程:
构建Tomcat镜像
构建Nginx镜像
构建MySQL镜像
版权声明:本文为weixin_46329906原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。