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容器
基础教程推荐
- Apache服务器配置攻略3 2022-09-01
- apache和nginx结合使用 2023-09-10
- nginx.conf(centos7 1.14)主配置文件修改 2023-09-23
- IIS 6 的 PHP 最佳配置方法 2022-09-01
- Apache Hudi数据布局黑科技降低一半查询时间 2022-10-06
- linux下安装apache与php;Apache+PHP+MySQL配置攻略 2023-08-07
- 实战Nginx_取代Apache的高性能Web服务器 2023-09-29
- 服务器添加git钩子的步骤 2022-12-12
- centos 7 安装及配置zabbix agent 2023-09-24
- linux之conda环境安装全过程 2023-07-11