1、基于commit命令创建2、基于Dockerfile创建1、commit命令创建: commit命令,支持用户提交自己对容器的修改,从而生成一个新的镜像。[root@zxq ~]# docker run -it centos /bin/bash // 首先创建一...

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


基础教程推荐
- RFO SIG之openEuler AWS AMI 制作详解 2022-12-28
- Apache CarbonData 1.0.0发布及其新特性介绍 2023-09-11
- Docker容器操作方法详解 2022-11-13
- 通过StatefulSet部署有状态服务应用实现方式 2022-10-01
- Apache Kafka 2.5 稳定版发布,新特性抢先看 2023-09-11
- 为Win2003服务器打造铜墙铁壁的方法步骤 2022-09-01
- Centos7 nginx的安装以及开机自启动的设置 2023-09-22
- P3 利用Vulnhub复现漏洞 - Apache SSI 远程命令执行漏洞 2023-09-10
- windows环境下apache-apollo服务器搭建 2023-09-10
- Centos 安装Django2.1 2023-09-24