本章将详细介绍创建容器的两种方法:
- 基于Docker commit命令创建
- 基于Dockerfile创建
基于docker commit命令创建一个容器
首先,启动一个centos容器
# docker run -it centos /bin/bash
安装openssh-server net-tools服务
# yum -y install openssh-server net-tools
修改/etc/ssh/sshd_config配置文件,并将HostKey /etc/ssh/ssh_host_ecdsa_key和HostKey /etc/ssh/ssh_host_ed25519_key注释掉。
HostKey /root/.ssh/id_rsa
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
使用命令ssh-keygen生成秘钥对
# ssh-keygen -t rsa
通过命令将容器commit成镜像。
# docker commit af81653210eb sshd/centos:0.1
启动新生成的镜像
# docker run -itd -p 2222:22 sshd/centos:0.1 /bin/bash
在宿主主机(192.168.1.200)或其他主机上上,可以通过SSH访问2222端口来登录容器
# ssh 10.10.0.164 -p 2222
使用Dockerfile创建
创建工作目录
# mkdir docker
在docker中创建Dockerfile
# 设置继承镜像 FROM centos:latest # 提供一些作者的信息 MAINTAINER weidong (weidong@docker.com) ENV ROOT_PASSWORD 123456 # 下面开始安装ssh服务 RUN yum -y install openssh-server net-tools vim RUN echo $ROOT_PASSWORD |passwd --stdin root RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
创建镜像
# docker buile -f docker/dockerfile -t sshd/centos:0.1 .