Docker实战:基于centos7镜像创建ssh容器
1、基于commit命令创建2、基于Dockerfile创建
1、commit命令创建:
commit命令,支持用户提交自己对容器的修改,从而生成一个新的镜像。
# docker run -it centos /bin/bash// 首先创建一个容器
# yum install -y openssh-server net-tools
在容器上安装ssh服务,后面的一个包支持常用的网络命令,例如:netstat
# echo "123123" | passwd --stdin root// 设置root密码
生成三个rsa秘钥文件,到/etc/ssh/目录下:
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
如果不生成这三个加密直接运行ssh会报错,提示这三个文件不存在:
http://blog.运维网.com/static/js/ueditor1.4.3/themes/default/images/spacer.gifhttp://s1.运维网.com/images/20180930/1538307756756667.png
/usr/sbin/sshd -D //后台运行ssh服务
http://s1.运维网.com/images/20180930/1538308235128681.png
编写ssh后台运行脚本:
http://s1.运维网.com/images/20181001/1538376527736676.png
# exit //退出
使用 commit 保存上一个带有ssh功能的容器,并重命名:
# docker commit f39647 sshd:centos
sha256:edc12b3b70bdaeffd440b4a48c126c275da9576eaeead435ccab010c7795fb37
# docker images
http://s1.运维网.com/images/20180930/1538308881530592.png
使用端口映射在后台运行这个带有ssh功能的新容器:
# docker run -d -p 10022:22 sshd:centos /run.sh或者 docker run -d -p 10022:22 sshd:centos /usr/sbin/sshd -D
# ssh root@192.168.1.17 -p 10022
http://s1.运维网.com/images/20181001/1538376738840836.png
http://s1.运维网.com/images/20181001/1538376806931693.png
docker容器一般只运行一个服务,现阶段如果要远程维护docker容器,ssh开销小,是个不错的选择。
Dockerfile创建:
# cd /
# mkdir sshd_centos
# cd sshd_centos/
# touch Dockerfile run.sh
# vim run.sh
# cat run.sh
#! /bin/bash
/usr/sbin/sshd -D
# chmod +x run.sh
# vim Dockerfile
# cat Dockerfile
FROM centos:latest
MAINTAINER ljys@910
RUN yum install -y openssh-server
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
RUN echo "123123" | passwd --stdin root
ADD run.sh /run.sh
EXPOSE 22
CMD ["/run.sh"]
# docker build -t sshd:dockerfile .
http://s1.运维网.com/images/20181001/1538379607981065.png
使用ssh连接 sshd:dockerfile 容器:
# ssh root@192.168.1.17 -p 10022
http://s1.运维网.com/images/20181001/1538380859559909.png
如果连接报错,使用一下解决方法:
http://s1.运维网.com/images/20181001/1538380934427632.png
# vim /root/.ssh/known_hosts
根据提示在一下文件中将指定的rsa报错验证删除,然后重新ssh连接!
页:
[1]