-
Add port projection in
docker-compose.yml
:
ports:
- 8080:8080
- "10022:22"
-
Start docker:
docker-compose up
-
Attach to working container:
docker exec -it kdba-console bash
-
安装openssh-server并启动
apt-get install openssh-server
启动之前需手动创建/var/run/sshd,不然启动sshd的时候会报错
mkdir -p /var/run/sshd
sshd以守护进程运行
/usr/sbin/sshd -D &
安装netstat,查看sshd是否监听22端口
apt-get install net-tools
netstat -apn | grep ssh
- 安装完成以后需要配置ssh服务
配置在docker container中完成
将Root的密码修改为test:
echo 'root:test' | chpasswd
允许使用root身份登录:
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
echo "export VISIBLE=now" >> /etc/profile12345678
- 配置好ssh服务之后重启ssh服务
service ssh restart
第四步,测试docker container中ssh服务端口在宿主机上的映射
此操作在宿主机
docker port <your container name> 22
此操作将查看docker container中端口22的映射
输出结果如下所示
0.0.0.0:10022
表明只要ssh链接宿主机的8022端口,实际是链接docker container中的22端口