通过Docker创建CentOS系统容器的步骤

前言

先安装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)以及映射的端口(-p 30003:22 -p 30004:80)。

docker run \
--name node1 \
--network test-network \
--network-alias node1 \
--privileged=true \
-dit \
-m 1500M \
-w ~/ \
-v /root/docker/node1:/root \
-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权限
# -dit \ 相当于后台运行容器(-d)、以交互模式运行容器(-i)、为容器重新分配一个伪输入终端(-t),-i和-t一般同时使用
# -m 1500M \ 限制容器使用内存上限1500兆
# -w ~/ \ 工作目录、进入容器后目录为当前用户目录
# -v /root/docker/node1:/root 将宿主机/root/docker/node1目录挂载到容器/root目录,目录下内容可以互相看到
# -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,网络是通的。

原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2022/12/04/%e9%80%9a%e8%bf%87docker%e5%88%9b%e5%bb%bacentos%e7%b3%bb%e7%bb%9f%e5%ae%b9%e5%99%a8%e7%9a%84%e6%ad%a5%e9%aa%a4/

(0)
AIRFAIRF
上一篇 2022年12月3日
下一篇 2022年12月4日

相关推荐

  • k8s集群关机后,如何解决 kubernetes 重启起不来的问题

    前景介绍 使用本地vmware搭建集群后,直接把vmware关机,然后再次启动后提示集群异常,所有容器状态为exited,并报错 The connection to the ser…

    2023年9月17日
  • 适合在虚拟化环境中运行 Kubernetes 的几个场景

    1. 前言 虚拟化技术的快速发展为企业提供了更高的灵活性、资源利用率和成本效益。同时,Kubernetes作为一个开源的容器编排系统,能够有效地管理和调度容器化应用程序。将Kube…

    Deepseek 2023年9月19日
  • 【四】K8S_Deployment

    Deployment作用 Kubernetes(K8S)中的 Deployment 是用于定义和管理应用程序部署的重要资源对象。Deployment 在 K8S 中具有以下用途和相…

    2023年9月17日
  • docker迁移备份容器到其他机器

    1 把当前的容器提交为一个镜像: docker ps -a  查看运行的容器ID docker commit 容器名 镜像名 2 将镜像存为tar文件 docker save 镜像…

    ChatGPT 2023年7月15日
  • 【三】K8S_NameSpace和Pod

    一、NameSpace Kubernetes(K8S)中的 Namespace 是一种用于组织和隔离集群资源的方式。它具有以下用途和相关概念: 资源隔离:Namespace 提供资…

    2023年9月17日
  • 【一】K8s的组件及概念

    K8s的组件 master: 集群的控制平面,负责集群的决策 ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制 Scheduler…

    2023年9月17日
  • 【精选】kubectl 常用命令指南

    kubectl 常用命令指南 Kubctl 命令是操作 kubernetes 集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握 Kubectl 自动补全 # se…

    ChatGPT 2023年12月26日
  • 容器升级内核及重启后遇到的问题

    前景描述 公司10台物理服务器,系统为Redhat7.9,因安装K8S,需将内核升级至3.10.0-1060以上,并修改相关参数,否则会造成内存泄露问题。 操作步骤 需要用到的升级…

    ChatGPT 2022年7月9日
  • 虚拟化 vs 裸金属:K8s 部署环境优劣势对比与适用场景分析

    引言 Kubernetes (K8s) 是一种流行的容器编排平台,可在云计算环境中部署和管理应用程序。企业在选择 K8s 部署环境时,通常面临一个核心问题:虚拟化环境还是裸金属环境…

    2023年9月19日
  • Kubernetets-Cka考试题库

    本次测试的所有问题都必须在指定的cluster配置环境中完成。为尽量减少切换,系统已对问题进行分组,同一cluster内的所有问题将连续显示。 开启TAB补全 做题前先配置k8s自…

    ChatGPT 2022年2月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注