Docker 镜像添加SSH服务之commit(十八)

Docker 镜像添加SSH服务之commit(十八)

Scroll Down

docker建立容器以后,可以通过宿主机器直接登陆容器,远程的话就需要首先远程登录宿主机,然后再登录容器。 在实际操作中在多个容器切换的话,还是没有直接通过ssh远程登录容器来得方便!

思路的话其实很简单,有两种:

  1. 通过现有容器安装ssh,然后通过commit生成新的镜像。
  2. 通过dockerfile直接建立新的ssh镜像

第二种方法地址:《Docker 镜像添加SSH服务之dockerfile(十九)》

1.通过commit制作新的镜像

1、找到一个系统镜像。我们以centos为例。

docker pull centos 

image.png

2、创建容器。

docker run -itd -p 8001:22 --name dongzao --privileged=true centos:latest  /usr/sbin/init

image.png

使用 --privileged=true 运行特权模式 ,主要用于容器内的systemctl 命令使用的问题。

3、登陆容器

docker exec -it dongzao /bin/bash

4、更新容器

yum -y update
yum install -y vim

5、安装ssh

yum install -y openssl openssh-server

6、编辑ssh配置文件

vim /etc/ssh/sshd_config

修改一下参数,图中是已经修改好的。

image.png

其他的都不需要动了。

7、设置root密码

容器启动以后root的密码我们不知道,就只能修改了。

echo "root:123456"|chpasswd

image.png

使用这样修改密码是应为 passwd 根本就无法使用。

8、启动ssh

systemctl start sshd   # 启动ssh
ssytemctl enable sshd  # 开机启动

image.png

测试登录

image.png

9、生成ssh镜像

dockers commit 容器ID  新镜像名称

image.png

10、测试新的镜像

我们使用新的镜像生成一个容器。

docker run -itd -p 8005:22 --name zabbx --privileged=true ssh-centos  /usr/sbin/init

image.png
image.png

测试可以登录

image.png

注意,上面的镜像创建容器开机启动ssh需要加上--privileged=true。

wallhavenp879v3.jpg