通过Docker创建CentOS容器

前言

先安装Docker,使用文内的脚本可以快速创建CentOS 7.8虚拟系统集群,并通过SSH(Secure Shell)远程工具连接。

创建桥接网络,方便容器间通信

指令格式为docker network create <网络名称 >

docker network create test-network

列出Docker下所有网络可以看到test-network。

docker network ls
通过Docker创建CentOS容器
image-20211113112157290

通过CentOS 7镜像创建容器

运行docker run使用阿里云镜像仓库拉取打包好的CentOS 7中文版镜(在centos:7.8.2003 镜像基础上添加了JDK8、 vim、lsof、wget、tree、python-devel、c 编译环境、SSH)像创建CentOS 7容器,系统用户名、密码分别为root和666666。

同一个主机下创建多个容器需要定义新的容器名(–name node2)、网络别名(–network-alias node2)、容器hostname(-h node2)、挂载到容器的目录名(-v /root/docker/node2:/root/share)以及映射的端口(-p 30003:22 -p 30004:80)。

docker run 
--name node1 
--network test-network 
--network-alias node1 
--privileged=true 
-h node1 
-dit 
-m 1500M 
-w ~/ 
-v /root/docker/node1:/root/share 
-p 30001:22 
-p 30002:80 
registry.cn-shanghai.aliyuncs.com/exposure/centos:7.8.2003_v1 
/usr/sbin/init

命令中每个参数解释:

docker run 
# --name node1  指定容器名为node1
--network test-network  使用名为test-network的网络
--network-alias node1  指定网络别名为node1,相当于域名
--privileged=true  指定是特权容器,拥有完整root权限
-h node1  指定hostname
-dit  相当于后台运行容器(-d)、以交互模式运行容器(-i)、为容器重新分配一个伪输入终端(-t),-i和-t一般同时使用
-m 1500M  限制容器使用内存上限1500兆
-w ~/  工作目录、进入容器后目录为当前用户目录
-v /root/docker/node1:/root 将宿主机/root/docker/node1目录挂载到容器/root/share目录,目录下内容可以互相看到
-p 30001:22  宿主机30001端口映射为容器22端口,通过宿主机30001端口相当于访问容器22端口
-p 30002:80 
# registry.cn-shanghai.aliyuncs.com/exposure/centos:7.8.2003_v1  使用镜像仓库以及标签/版本号
/usr/sbin/init  容器启动后执行这个指令来准备软件执行的环境,包括系统的主机名、网络设定、语言、文件系统格式及其他服务的启动等

连接容器

  • • 宿主机命令行进入容器

进入容器
docker exec -it node1 /bin/bash

退出容器
exit
  • • 远程连接:通过宿主机IP和端口(映射容器22端口的那个)来访问CentOS 7容器

通过Docker创建CentOS容器

容器间互相访问

同一网络下,容器通过网络别名(–network-alias)来互相访问。下图中连接到node2容器,在容器内可以ping通node1,网络是通的。

通过Docker创建CentOS容器
image-20211113151707170

目录挂载问题

如果将宿主机空目录直接挂载到容器/root目录,可能会导致一些问题,比如登录容器系统hostname始终显示-bash-4.2#,而不是我们设置的,如node1。因为/root目录下缺少配置文件,而挂载的宿主机目录又没有。

通过Docker创建CentOS容器
image-20211210182121155

hostname不正常显示,可以在登录容器后执行下面语句,拷贝默认配置到/root目录,然后重新连接即可显示正常。

cp /etc/skel/.bashrc /root
cp /etc/skel/.bash_profile /root

参考链接

菜鸟教程 – Docker命令大全[1]

引用链接

[1] 菜鸟教程 – Docker命令大全: https://www.runoob.com/docker/docker-command-manual.html


原文始发于微信公众号(我有八千部下):通过Docker创建CentOS容器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/102497.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!