「Linux」Docker中运行Centos7镜像并配置网络连接
写在前面:通过Docker构建Centos学习环境,过程中遇到的一些问题记录。在Docker中运行Centos7仅需从DockerHub拉取对应镜像docker pull centos:7镜像下载好后,即可运行。docker run -itd --name c1 cetnos:7按照交互方式启动运行的Centos7镜像会在后台挂在一个bash进行,从而可以使用docker ps查看正在后台运行的容
·
写在前面:
通过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.
更多推荐
已为社区贡献1条内容
所有评论(0)