Docker等容器技术越来越普遍,越来越多的公司开始尝试接受容器技术带来的便利。对于我们来说,每一个运行着的
container
就是一个服务,我们如何像管理多条服务器一样,管理多个Docker容器?
探究原因
我们之所以可以通过xshell
或者putty
等工具来管理我们的linux服务器。主要原因是因为我们linux服务器上都安装了SSH
服务。每一个docker容器运行的镜像本质上来说是一个精简版的linux,所以说,我们同样可以通过给我们的container
安装SSH
服务来达到使用工具集中管理多个Docker容器的目的。
如何给运行中Docker容器安装SSH
服务?
这里我以我本地一个运行中的SQL Server
的数据库服务为例
1、打开命令面板,输入指令docker ps
查看运行中的容器并复制容器ID
2、输入指令docker exec -it <复制的容器ID> /bin/sh
,进入命令行工具
3、进入命令行工具后首先建议输入指令apt-get update
更新下源
4、输入指令apt-get install openssh-server
,安装SSH
服务
5、安装完毕后,输入指令service ssh satrt
启动SSH
服务
6、使用vim进入/etc/ssh/
文件更改SSH
服务配置,将PermitRootLogin的值从withoutPassword改为yes,允许root
用户进行登录
7、输入指令passwd root
设置root
用户登录密码
8、如果docker容器中没有安装vim
,则输入指令apt-get install vim
进行安装
9、输入指令service ssh restart
重启SSH
服务
10、输入exit
退出当前容器命令行工具
11、回到系统命令面板,输入指令docker ps
查看当前运行中的容器并复制安装好SSH
服务的容器ID
12、为了避免后期因为各种原因重复安装SSH
服务,建议输入指令docker commit <复制的容器ID> <自己定义的镜像名>
,保存经想到本地
13、停止当前镜像,输入指令docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=567rty%^&YUI' -p 1433:1433 -p 8400:20 -d microsoft/mssql-server-linux:latest
,启动刚才保存在本地的镜像并把SSH
服务的20端口映射出来,这里我映射的是主机8400duankou
14、为了方便,这里还可以输入指令docker update --restart=always <容器ID>
让容器保持始终运行
备注
上面保存镜像到本地
和让容器始终运行
可以根据自己喜好选择是否进行操作,如果指令报权限相关错误,只需要在每条命令前添加sudo
指令就可以了