ssh登录Docker容器
1.登录容器中,修改root密码,安装openssh服务
docker exec -it u_web /bin/bash
passwd #修改容器中系统ROOT账户的密码
yum -y install openssh* #安装openssh服务
2.修改SSH配置文件以下选项,去掉#注释,将四个选项启用:
[root@c51dfb838b52 ~]# vi /etc/ssh/sshd_config
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录
3.重启ssh服务,并设置开机启动:
service sshd restart
chkconfig sshd on
4.启动服务可能出现问题 Failed to get D-Bus connection: Operation not permitted
原因:dbus-daemon没能启动。其实systemctl并不是不可以使用。将你的CMD或者entrypoint设置为/usr/sbin/init即可。会自动将dbus等服务启动起来。
添加 --privileged=true 和 /usr/sbin/init 运行环境。
重新创建容器:
docker run -tid --name "u_web" --privileged=true --network=macvlan1 --ip=xx.x.x.xx u:d29 /usr/sbin/init
进入容器:
docker exec -it u_web /bin/bash
(直接使用特权模式以 docker run -it 这种模式进入容器,如果以特权模式创建容器,
会检查很多启动项,最终也会处于卡死的情况)
5、使用SecureCRT或者XShell通过预先设置的IP直接访问容器。