写在前面:
通过Docker构建Centos学习环境,过程中遇到的一些问题记录。

在Docker中运行Centos7仅需从DockerHub拉取对应镜像

docker pull centos:7

镜像下载好后,为了让Centos更像在虚拟机里运行,则需要增加特权模式,让其可以后台运行。

docker run -d --name c1 --privileged=true cetnos:7 /usr/sbin/init

按照交互方式启动运行的Centos7镜像会在后台挂在一个bash进行,从而可以使用docker ps查看正在后台运行的容器。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
5bfc1808add1        centos:7            "/bin/bash"         40 minutes ago      Up 15 minutes                           c1

因为官方提供的Centos7镜像是最小化的,因此很多系统参数未配置,工具包也未安装。在网络参数未配置的情况下,容器是无法进行IP数据包转发,从而连接到互联网的,因此,接下里开始配合容器的路由转发参数,并安装常用的工具。
配置路由转发参数,首先需要检查是否存在/etc/sysctl.conf文件,如果不存在就在创建一个,如果存在,则检查net.ipv4.ip_forward

## 假设 sysctl.conf 文件不存在
vi /etc/sysctl.conf
## 在 sysctl.conf 中增加 net.ipv4.ip_forward = 1 , 表示允许进行路由转发
net.ipv4.ip_forward = 1
## 加载参数到内核
sysctl -p
## 重启容器
docker restart c1
## 测试网络连接情况
ping [任意可用网址]

确认容器网路可用之后,就可以开始安装的工具。

## 补充两个常用的工具包,包括了 ip vim 工具
yum install -y iproute vim openssh openssh-clients.aarch64 openssh-server.aarch64 epel-release systemd NetworkManager

安装完成后,配置openssh能够每次启动容器自动加载。

systemctl daemon-reload
systemctl start sshd
systemctl enable sshd

补充:
yum 搜索工具所在的工具包,下面以搜索traceroute工具所在包为例。

[root@localhost ~] # yum provides traceroute
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror-hk.koddos.net
 * extras: mirror-hk.koddos.net
 * updates: mirror-hk.koddos.net
3:traceroute-2.0.22-2.el7.aarch64 : Traces the route taken by packets over an IPv4/IPv6 network
Repo        : bas

## search检索工具包名
[root@localhost ~]# yum search epel
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror-hk.koddos.net
 * epel: my.mirrors.thegigabit.com
 * extras: mirror-hk.koddos.net
 * updates: mirror-hk.koddos.net
=============================================== N/S matched: epel ===============================================
epel-release.noarch : Extra Packages for Enterprise Linux repository configuration
epel-rpm-macros.noarch : Extra Packages for Enterprise Linux RPM macros

  Name and summary matches only, use "search all" for everything.
Logo

更多推荐