ssh连接docker容器;docker容器设置root密码
情景描述
在服务器上启动了一个docker容器(ubuntu16.04),作为测试环境。现在想在本地直接通过ssh远程访问进入这个容器内。
当然有一种简单方法:先ssh进入服务器(宿主机),然后执行docker exec -it 容器名 /bin/bash
就可以进入了。下面记录不是这种简单方法,而是直接ssh进入容器内。
1. 启动容器
docker run -dit -p 8022:22 --name test1 ubuntu:16.04
-p
参数把容器的22端口映射到了宿主机的8022端口。假设宿主机ip为1.1.1.1
,则直接ssh访问1.1.1.1
的8022端口,就相当于访问这个容器环境。
2. 安装ssh;并修改ssh配置允许root登录
安装ssh
apt install openssh-server
在docker容器内,编辑文件/etc/ssh/sshd_config
,添加一行PermitRootLogin yes
表示ssh允许root登录。
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 或者 vim /etc/ssh/sshd_config 并手敲一行PermitRootLogin yes
随后一定要重启ssh服务
service ssh restart
3. 设置root密码
在docker容器内,初始化root密码,用于下一步的登录。
passwd root
根据提示输入初始密码。
3. 本地访问容器
如果是终端,可以直接访问容器:
ssh root@1.1.1.1 -p 8022
其中1.1.1.1
是宿主机ip。