Docker容器使用MobaXterm连接

创建容器Ubuntu

  • 创建容器并映射端口

SSH默认端口是22,所以将宿主机的某空闲端口映射到容器的端口22,笔者选的50022。此时外部访问宿主机50022端口,就相当于在访问容器的22端口。

docker pull ubuntu:latest
docker run -it --privileged=true -p 50022:22 --name ubuntu  ubuntu bash

# 在容器中安装某些大型软件,如matlab时可能需要让--privileged=true, 
# -p后跟端口映射,--name后跟你喜欢的容器名,-v后跟地址映射,根据你的需求来指定文件夹
# -v /d/docker/ubuntu_fsl_disp:/shared_data

docker GUI中查看端口情况:

image-20210124112003864

  • 配置ubuntu:更新源

用如下镜像源sources.list替换/etc/apt/sources.list

mv /etc/apt/sources.list /etc/apt/sources.list.backup
vim /etc/apt/sources.list 
# 163源 for ubuntu 2020.04
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
  • 装常用软件

apt-get update
apt-get install vim
apt-get install git
apt-get install net-tools

容器中配置SSH连接


容器中安装SSH server

apt-get install openssh-server

修改sshd_config,开放22端口,并允许密码登录

echo "Port 22">>/etc/ssh/sshd_config
echo "PermitRootLogin yes">>/etc/ssh/sshd_config

启动ssh服务

service ssh start

查看ssh状态

service ssh status

ssh自启,输入以下命令有问题,按照提示操作也没有解决,暂时不采用开机启动而直接采用打开终端时启动SSH

systemctl enable ssh

Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
  Executing: /lib/systemd/systemd-sysv-install enable ssh

打开终端时启动SSH。写如下脚本ssh_auto_start.sh,把它放在某个位置,笔者放在根目录下的。

#!/bin/bash

service ssh start
service ssh status

修改其权限为可执行。

chmod 755 ~/ssh_auto_start.sh

添加脚本路径与脚本名到/root/.bashrc。重启终端,就会提示SSH已经启动。

echo "~/ssh_auto_start.sh ssh_auto_start.sh">>/root/.bashrc

​ 先设置容器root用户密码,没有密码外部无法登陆。

passwd

查看22端口是否处于监听状态。

netstat -ap | grep ssh

若不是,service ssh restart重启一下SSH

image-20210124113708564

mobaXterm远程登录docker容器

image-20210124113931859
到此SSH连接成功。
image-20210124114037732

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐