文章目录

  • 前言
  • 创建桥接网络,方便容器间通信
  • 通过CentOS 7镜像创建容器
  • 连接容器
  • 容器间互相访问
  • 目录挂载问题
  • 参考链接

前言

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

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

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

docker network create test-network

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

docker network ls

通过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容器

容器间互相访问

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

目录挂载问题

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

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

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

参考链接

菜鸟教程 - Docker命令大全

通过Docker创建CentOS容器相关推荐

  1. Win10下Docker创建Centos容器SSH远程登录的镜像

    1. 创建D:/docker/centos_ssh/Dockerfile mkdir D:/docker/build/centos_ssh cd .>D:/docker/build/centos ...

  2. 在Docker中创建CentOS容器

    在Docker中创建CentOS容器 前提 镜像准备 运行并保存容器 再次运行容器 前提 前提是机器上安装了docker,并运行了docker服务.本人为图方便(没钱买服务器,懒得装虚拟机),使用的操 ...

  3. docker创建mysql容器

    docker创建mysq容器 1.在docker镜像仓库中搜索mysql镜像 docker search mysql 2.下载镜像 # 1.不指定版本,下载的镜像是最新的 latest版本 docke ...

  4. docker创建CentOS云主机(docker实践)

    基于Ubuntu操作系统,从零开始构建一套docker虚拟化平台. docker的产物为:容器. docker构建容器(Nginx WEB). docker启动虚拟机(创建CentOS云主机,同样是容 ...

  5. docker创建nginx容器

    创建nginx容器 需要同时提供配置文件和网页文件 实例: [root@localhost ~]# docker run -it --name html -v /var/www/html/:/usr/ ...

  6. docker中centos容器安装宝塔面板

    安装centos 拉取镜像 docker pull centos 创建容器 docker run -i -t -d --name baota -p 10080:80 -p 10443:443 -p 1 ...

  7. 使用docker创建mysql容器

    1.拉取mysql镜像 docker pull mysql 2.创建mysql容器(重点) #其他的mysql容器占用了3306,这次我用3307,容器的3306是固定的,改了会连接不上 [root@ ...

  8. docker build mysql,Docker创建MySQL容器的方法

    本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 2. 在Doc ...

  9. docker 创建redis容器

    1.搜索redis镜像 2.拉取redis镜像 3.创建存放redis文件夹用于存放redis mkdir /usr/data/redis/data 4.使用redis镜像运行redis容器 dock ...

最新文章

  1. Office 2007无法修复、卸载、重装
  2. windows文件 linux cr,DOS/Windows和Linux/Unix间的文件格式转换
  3. linux服务器黑屏_xshell连接Linux系统(小红帽7.3)服务器,导致服务器黑屏
  4. springmvc整合mybatis之准备阶段与文件配置
  5. 一起来做个免登录资源导航小程序!
  6. 免费送书的网站-每人限一本
  7. 用C#设计一个四则运算器
  8. 算法笔记_138:稳定婚姻问题(Java)
  9. python 递归函数例子
  10. MySql ALTER用法
  11. 【NLP】word2vec 模型
  12. 分享帝国CMS采集教程(图文详解)
  13. c语言判断字符串是否对称,c语言 判断字符串是否中心对称
  14. curl命令及其API 的使用
  15. 《代码大全》读书笔记之一
  16. 小提琴统计图_小提琴图解读 - 统计学
  17. URL中“#” “?” “”号的作用
  18. PC 视频播放器(超好)
  19. EP10W2A02N05方向阀导压操作插装阀
  20. 计算机网络位置被断开了怎么办,win10电脑网络一会就断开了怎么办_win10电脑网络一会就断开了的解决方法...

热门文章

  1. 项目管理之项目的挣值计算问题
  2. Linux下默认字体是什么,linux默认字体是什么
  3. 后端返回数据中的换行符,在标签中不显示换行的解决方法
  4. 《软技能-代码之外的生存指南》学习笔记之理财篇
  5. web学习第七天:来自倔驴的怒吼——生理年龄不代表技术年龄
  6. C语言入门之【C语言 “ 函数 “】
  7. MySQL三种插入方式
  8. BZOJ 4430 Guessing Camels赌骆驼
  9. 基于最小割的分割算法(Min-Cut Based Segmentation)
  10. Js编码和Java后台解码