Docker的镜像可以实现 一次构建,到处运行 ,使用非常方便,我们以官方提供的基础centos镜像来构建一个可以使用xshell等终端工具远程连接的linux镜像,以后需要linux环境的情况下就可以以此镜像来创建容器并外部连接使用。

1.构建远程连接的centos镜像

#####  在进行下面操作前请先搭建好docker环境  #####
#下载centos镜像,镜像版本默认latest
docker pull centos

#查看镜像信息
docker images

图1:镜像信息

远程连接docker中的MySQL 远程连接docker容器_远程连接docker中的MySQL

#修改基础镜像,创建容器
docker run -itd --name serverbase --privileged centos:latest init

参数解释:

itd 后台运行
name 容器名称
privileged 获得真正root身份
centos:latest 镜像的名称:版本,也可用镜像id

#查看所有运行中的容器
docker ps

#进入容器
docker exec -it 容器id /bin/bash

#设置密码
passwd

#如果centos镜像版本是latest,需要修改镜像源,在容器内部分别执行
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum makecache
yum update -y

#安装一些必要工具命令
yum install vim -y
yum install passwd
sudo yum install net-tools
yum install telnet
yum install openssh-server -y
yum install openssh-clients -y

#修改ssh配置文件sshd_config,修改参照图2红框两处
vi /etc/ssh/sshd_config

#重启ssh服务
systemctl start sshd

#退出容器
exit

图2:修改配置文件sshd_config

远程连接docker中的MySQL 远程连接docker容器_linux_02

#将修改后的容器打包生成新的镜像
	#容器id 上面创建修改的容器的id
	#centos:remote 要生成的新镜像的名称:tag
docker commit -a “作者名称” -m "一些说明信息" 容器id centos:remote

#查看新生成的镜像
docker images

2.远程连接linux容器

#使用刚才提交的新镜像创建容器
docker run -d -p 5001:22 镜像名称:tag /usr/sbin/sshd -D

参数解释:

-d 后台运行容器

-p 小写p,5001是宿主机暴露的端口,可以自定义,外部连接需要使用宿主机的ip和这个端口;22是容器内部对应的端口

在终端软件里连接linux容器,我用的是 Royal TSX ,在Mac阵营的终端软件里体验不错,可以使用宿主机ip或在hosts文件里配置后使用主机名连接

远程连接docker中的MySQL 远程连接docker容器_docker_03


远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器 远程连接docker的linux容器