「Linux」Docker中运行Centos7镜像并配置网络连接

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

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

docker pull centos:7
docker pull centos:7 
docker pull centos:7

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

docker run -d --name c1 --privileged<span class="token operator">=</span>true cetnos:7 /usr/sbin/init
docker run -d --name c1 --privileged<span class="token operator">=</span>true cetnos:7 /usr/sbin/init 
docker run -d --name c1 --privileged=true cetnos:7 /usr/sbin/init

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

<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bfc1808add1 centos:7 <span class="token string">"/bin/bash"</span> <span class="token number">40</span> minutes ago Up <span class="token number">15</span> minutes c1
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bfc1808add1 centos:7 <span class="token string">"/bin/bash"</span> <span class="token number">40</span> minutes ago Up <span class="token number">15</span> minutes c1 
[root@localhost ~] 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

<span class="token function">vi</span> /etc/sysctl.conf net.ipv4.ip_forward <span class="token operator">=</span> <span class="token number">1</span> sysctl -p docker restart c1 <span class="token function">ping</span> <span class="token punctuation">[</span>任意可用网址<span class="token punctuation">]</span>
 <span class="token function">vi</span> /etc/sysctl.conf  net.ipv4.ip_forward <span class="token operator">=</span> <span class="token number">1</span>  sysctl -p  docker restart c1  <span class="token function">ping</span> <span class="token punctuation">[</span>任意可用网址<span class="token punctuation">]</span> 
vi /etc/sysctl.conf net.ipv4.ip_forward = 1 sysctl -p docker restart c1 ping [任意可用网址]

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

yum <span class="token function">install</span> -y iproute <span class="token function">vim</span> openssh openssh-clients.aarch64 openssh-server.aarch64 epel-release systemd NetworkManager
 yum <span class="token function">install</span> -y iproute <span class="token function">vim</span> openssh openssh-clients.aarch64 openssh-server.aarch64 epel-release systemd NetworkManager 
yum install -y iproute vim openssh openssh-clients.aarch64 openssh-server.aarch64 epel-release systemd NetworkManager

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

systemctl daemon-reload systemctl start sshd systemctl <span class="token builtin class-name">enable</span> sshd
systemctl daemon-reload systemctl start sshd systemctl <span class="token builtin class-name">enable</span> sshd 
systemctl daemon-reload systemctl start sshd systemctl enable sshd

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

<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 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 <span class="token number">3</span>:traceroute-2.0.22-2.el7.aarch64 <span class="token builtin class-name">:</span> Traces the route taken by packets over an IPv4/IPv6 network Repo <span class="token builtin class-name">:</span> bas <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 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 <span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span> N/S matched: epel <span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span> epel-release.noarch <span class="token builtin class-name">:</span> Extra Packages <span class="token keyword">for</span> Enterprise Linux repository configuration epel-rpm-macros.noarch <span class="token builtin class-name">:</span> Extra Packages <span class="token keyword">for</span> Enterprise Linux RPM macros Name and summary matches only, use <span class="token string">"search all"</span> <span class="token keyword">for</span> everything.
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span>  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 <span class="token number">3</span>:traceroute-2.0.22-2.el7.aarch64 <span class="token builtin class-name">:</span> Traces the route taken by packets over an IPv4/IPv6 network Repo <span class="token builtin class-name">:</span> bas  <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 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 <span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span> N/S matched: epel <span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span> epel-release.noarch <span class="token builtin class-name">:</span> Extra Packages <span class="token keyword">for</span> Enterprise Linux repository configuration epel-rpm-macros.noarch <span class="token builtin class-name">:</span> Extra Packages <span class="token keyword">for</span> Enterprise Linux RPM macros Name and summary matches only, use <span class="token string">"search all"</span> <span class="token keyword">for</span> everything. 
[root@localhost ~] 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 [root@localhost ~] 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.

原文链接:https://blog.csdn.net/weixin_42404727/article/details/118179937

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享