1.基本结构
1.基础镜像信息
2.维护者信息
3.镜像操作指令
4.容器启动时执行命令
vim Dockerfile
FROM centos #下载镜像
MAINTAINER this is sshd <wyx> #描述镜像信息
RUN yum -y update
RUN yum -y install openssh* net-tools lsof telnet passwd
RUN echo '123456' | passwd --stdin root
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
EXPOSE 22
CMD ["/usr/sbin/sshd" , "-D"]
2.指令说明
ADD与COPY的区别:
1.两者都是只复制目录中的文件,而不包含目录本身
2.COPY能干的事ADD都能干
3.ADD可以支持拷贝的时候顺带的压缩功能,以及添加远程文件(不在本宿主机上的文件)
4.只是文件拷贝可以用COPY,有额外操作的用ADD
CMD和entrypoint的区别
都是容器启动时要加载的命令
1.cmd是容器环境启动时默认加载的命令
2.entrypoint是容器环境启动时第一个加载的命令程序/脚本程序init
3.创建镜像
根据Dockerfile构建镜像命令:docker build -t sshd:0.1 .
[root@k8s-master sshd]# docker build -t sshd:0.1 .
[+] Building 505.3s (12/12) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 557B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/centos:7 1.7s
=> CACHED [1/8] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 0.0s
=> [2/8] RUN yum update -y 339.7s
=> [3/8] RUN yum -y install openssh* net-tools lsof telnet passwd 156.7s
=> [4/8] RUN echo '123456' | passwd --stdin root 0.6s
=> [5/8] RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config 0.4s
=> [6/8] RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 0.6s
=> [7/8] RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd 0.4s
=> [8/8] RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh 0.4s
=> exporting to image 4.7s
=> => exporting layers 4.6s
=> => writing image sha256:b950c62cbe5fea24dffaba933c31522309fc2d309994971daab06a7c20c160ab 0.0s
=> => naming to docker.io/library/sshd:0.1