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容器
基础教程推荐
- Nginx负载均衡之upstream模块简介与使用详解 2022-11-26
- Nginx geoip模块实现地区性负载均衡 2024-03-15
- CentOS 7下的KVM网卡配置为千兆网卡 2023-09-24
- LVS+DR+apache+keepalived负载均衡 2023-09-08
- Apache用户认证、域名跳转、Apache访问日志 2023-09-29
- https协议详解 2022-12-12
- 备份和恢复Windows IIS服务器设置的方法 2022-09-01
- Target runtime Apache Tomcat v8.0 is not defined 2023-09-08
- http请求报错:Too Many Requests Error的原因和解决办法 2023-12-03
- http请求报错:SSL Certificate Chain Error的原因和解决办法 2023-12-04
