使用ssh连接docker容器
Docker创建ssh连接的ubuntu容器
当代码的环境与主机上的环境产生冲突时,使用docker保留可以更加灵活。但是容器内的bash很难容需要使用ssh连接。本篇内容是记录这个折腾的步骤,主机环境为Mac OS。
1.从docker仓库中拉取ubuntu镜像(这里可以选择自己喜欢的):
docker pull ubuntu
2.创建容器
# 找到镜像id
docker run -it --name ubuntu (镜像id) /bin/bash
3.进入容器后更新基础依赖
apt update
apt install vim openssh-server -y
4.配置ssh
vim /etc/ssh/sshd_config
修改的内容如下:
PermitRootLogin yes # 可以root登录
启动ssh服务
service ssh restart
or
/etc/init.d/ssh restarts
设置当前root密码
passwd
123456
退出容器,将当前容器创建为基础镜像 之后以这个镜像为基础创建容器。
5.创建基础镜像
使用ps命令找到容器id
docker ps -a
找到目标容器id后根据这个id创建镜像
docker commit (容器id) ubuntu-ssh
镜像创建成功,接下来基于这个镜像创建容器启动。
docker run -p 22201:22 -it --name ubuntu-ssh01 (镜像id) /bin/bash
启动后将22端口映射到主机上的22201端口,使用如下命令可连接进容器中。
ssh root@127.0.0.1 -p 22201s
每次将容器关闭后再启动,ssh服务都需要手动开启设置成自动启动
6.设置ssh自启动
vim /root/.bashrc
# 文件末尾添加如下代码
service ssh start
Docker 容器在启动的时候会自动执行~/.bashrc文件,所以环境变量需要再配置在这个文件中。