docker使用Dockerfile构建ssh容器
原创
©著作权归作者所有:来自51CTO博客作者rong123l的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、使用Dockerfile构建centos
1、创建 Dockerfile
mkdir centos # 创建一个目录存放之后的Dockerfile,目录名无所谓
cd centos # 进入目录
vi Dockerfile # 创建Dockerfile
将如下内容填入Dockerfile中然后存盘退出
FROM docker.io/centos
MAINTAINER rslai "netlrs@163.com"
RUN yum update -y \
&& yum clean all
注:FROM docker.io/centos :以这个镜像为基础
MAINTAINER rslai "netlrs@163.com" :镜像的作者说明
RUN yum update -y : 升级centos到最新
&& yum clean all :清除yum缓存
2、创建image文件
docker build -t centos:mycentos -f /root/centos/Dockerfile /root/centos
# 库 tag dokerfile文件 dokerfile目录
3、查看生成的image文件

4、创建容器
docker run -itd --net=none --name=test002 centos:mycentos /bin/bash
# 不配置网络 容器名称 image TAG 默认启动bash
5、查看创建的容器是否运行

6、给容器指定ip地址
pipework enp2s0 test002 192.168.2.234/24@192.168.2.1
# 网卡名 容器名 ip地址 网关
7、进入容器查看ip地址
docker exec -it test002 /bin/bash # 进入容器
yum install -y net-tools # 安装网络工具包
ifconfig # 查看ip地址
二、使用Dockerfile构建待ssh服务的centos
1、创建 Dockerfile
mkdir centosssh # 创建一个目录存放之后的Dockerfile,目录名无所谓
cd centosssh # 进入目录
vi Dockerfile # 创建Dockerfile
将如下内容填入Dockerfile中然后存盘退出
FROM docker.io/centos
MAINTAINER rslai "netlrs@163.com"
RUN yum install -y net-tools openssh-server openssh-clients sudo \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \
&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
说明:

2、创建image文件
docker build -t centos:mycentosSsh -f /root/centosssh/Dockerfile /root/centosssh
# 库 tag dokerfile文件 dokerfile目录
3、查看生成的image文件

4、创建容器
docker run -itd --net=none --name=test003 centos:mycentosSsh
# 不配置网络 容器名称 image TAG
5、查看创建的容器是否运行

6、给容器指定ip地址
pipework enp2s0 test003 192.168.2.234/24@192.168.2.1
# 网卡名 容器名 ip地址 网关
7、进入容器查看ip地址
docker exec -it test002 /bin/bash # 进入容器
ifconfig # 查看ip地址
8、查看sshd进程

如果没看到可能是第4步创建容器的时候后边跟上了 /bin/bash 这样bash命令优先级高了
9、远程连接ssh
useradd rslai # 创建rslai用户
passwd rslai # 给用户设置密码
10、找一个ssh工具设置ssh连接,ip地址 192.168.2.234 用户名rslai密码你起的