利用 Docker 在不同宿主机做 CentOS 系统容器( 五 )


5、修改ssh配置文件
[root@ 1fc31e49daxc ~] # vi /etc/ssh/sshd_config
#配置信息去掉如下注释
Port 22ListenAddress 0.0.0.0
ListenAddress ::
permitrootlogin yes
UsePAM yes改为 UsePAM no
GSSAPICleanupCredentials no改为 GSSAPICleanupCredentials yes
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
6、重启ssh
[ root@1fc31e49daxc ~] # /usr/sbin/sshd -D
7、设置linux容器的密码
[ root@1fc31e49daxc ~] # passwd root
8、退出容器并将容器提交成镜像
[ root@1fc31e49daxc ~] # exit
[ root@master ~] # docker commit 1fc31e49daxc pre-centos:1.0
9、将镜像打成标签提交私有仓库
[root@master ~] # docker tag 8a1960ed7c4c 192.168.12.10:5000/yuliang/pre-centos:1.0
[root@master ~] # docker push 8a1960ed7c4c
8a1960ed7c4c 为IMAGE ID,修改标签后的镜像与提交的镜像IMAGE ID是一样的 。
10、拉取私有仓库镜像
[root@slave1 ~] # docker pull 192.168.12.10:5000/yuliang/pre-centos:1.0
11、创建新的容器
[root@slave1 ~] # docker run -itd --name pre-centos --privileged=true -m 30G -p 10022:22 -p 3357:3306 -p 8024:8024 -p 8025:8025 192.168.12.10:5000/yuliang/pre-centos:1.0 /usr/sbin/init
其中有一个新的参数-m需要讲一下,其实它就是限制容器使用的内存,默认情况下容器使用的资源是根据宿主机来定的,宿主机有多少资源它就能够用多少资源 。容器的磁盘空间除外,容器的磁盘空间是根据Docker存储数据路径所在宿主机的那个磁盘大小定的,也就是说Docker存储数据路径所在磁盘有100G,容器也只能够使用100G的磁盘 。而内存和CPU在默认情况下宿主机有多少资源它就能够用多少资源 。这个容器我使用了-m来限制容器只能使用30G内存 。
(注:再次提醒事先规划好容器使用的端口在创建容器,如果容器已经创建成功后想添加端口请查看这篇文章:为已创建的容器添加映射端口)
12、测试容器是否正常运行
[root@slave1 ~] # docker ps
[root@slave1 ~] # docker exec -it a38321832cfd bash
13、查看容器信息
[root@slave1 ~] # docker inspect a38321832cfd
这条命令执行后显示的信息就是该a38321832cfd容器构建时候的全部信息,包括IP、端口映射等等 。
14、访问容器
1、如果是在做过容器间通信的宿主机上连接访问可通过以下命令:
[root@master ~]# sshroot@ 172. 18. 91. 2
注意使用的容器的22端口 。
2、如果是在没有做过容器间通信的服务器上连接访问则需要通过以下命令:
[root@ecs-12 ~]# ssh-p10022 root@ 192. 168. 10. 2
3、如果是使用外部工具访问容器,需要用到也是宿主机的10022端口和宿主机的IP 。
上文参考:
总结
以上关于如何做不同宿主机间容器通信和使用Docker创建虚拟机服务器我已经讲解的很清楚了,文中有些我是在网上找来的也添加了出处,在网上找来的内容我也有实际认认真真的研究过并且加以改进我才敢在我们的预生产环境使用 。因为现在还没到真正的测试实验阶段,所以我不敢打包票说这些内容一定没有问题 。
后续我会将遇到的问题整理进这篇文章的,如果我没有添加则说明确实没有问题了 。看到这篇文章的人发现文中有问题可随时给我留言 。最后说一句话,有些事情看着很容易,实际做起来你会发现也很容易,但得需要你去做啊 。
版权声明:本文为CSDN博主「于先森2017」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明 。




推荐阅读