docker创建简单实用的实例

一、为镜像添加SSH服务

宿主机(10.211.55.9)执行:
创建一个容器
# docker pull centos
# docker run -it centos /bin/bash

容器内(a78)执行:
安装openssh-server
# yum -y install openssh-server

如果需要正常启动SSH服务,则目录/var/run/sshd必须存在。手动创建它,并启动SSH服务
# mkdir -p /var/run/sshd
# /usr/sbin/sshd -D &
# cd /etc/ssh/sshd_config
# cd /etc/ssh
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ed25519_key -N ""
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_rsa_key -N ""
# /usr/sbin/sshd -D &

此时查看容器的22端口(SSH服务默认监听的端口),可见此端口已经处
于监听状态
# ss -anptl
# ps -ef | grep sshd
# yum -y install passwd
# passwd root
这时,宿主机可以直接ssh容器:ssh [email protected]

在root用户目录下创建.ssh目录,并复制需要登录的公钥信息(一般为本
地主机用户目录下的.ssh/ id_rsa.pub文件,可由ssh-keygen-t rsa命令生成)到authorized_keys文件中
# mkdir root/.ssh
# cd root/.ssh
# ssh-keygen
# cat id_rsa.pub
# vi /root/.ssh/authorized_keys 

创建自动启动SSH服务的可执行文件run.sh,并添加可执行权限
# vi /run.sh
#!/bin/bash
/usr/sbin/sshd -D
# chmod +x run.sh
# exit

宿主机执行:
将所退出的容器用docker commit命令保存为一个新的sshd:centos镜像
# docker commit a78 sshd:centos
# docker images

启动容器,并添加端口映射10022-->22。其中10022是宿主主机的端口,22是容器的SSH服务监听端口
# docker run -p 10022:22 -d sshd:centos /run.sh
# docker ps -a
# ss -anptl | grep 10022

在宿主主机(192.168.1.200)或其他主机上上,可以通过SSH访问10022端口来登录容器
# ssh 10.211.55.9 -p 10022
发布了24 篇原创文章 · 获赞 2 · 访问量 1104

猜你喜欢

转载自blog.csdn.net/Kammingo/article/details/105663605