安装Docker

一、Docker环境搭建

(1)查看当前系统的内核版本

1 [root@localhost /]# uname -r
2 3.10.0-1160.el7.x86_64

(2)设置上网功能 

 1 [root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
 2 TYPE=Ethernet
 3 PROXY_METHOD=none
 4 BROWSER_ONLY=no
 5 BOOTPROTO=dhcp
 6 DEFROUTE=yes
 7 IPV4_FAILURE_FATAL=no
 8 IPV6INIT=yes
 9 IPV6_AUTOCONF=yes
10 IPV6_DEFROUTE=yes
11 IPV6_FAILURE_FATAL=no
12 IPV6_ADDR_GEN_MODE=stable-privacy
13 NAME=ens33
14 UUID=4386b235-f466-41b6-bf48-132bf1adadca
15 DEVICE=ens33
16 ONBOOT=yes

设置网络适配器模式为NAT 

[root@localhost /]# systemctl restart network    //重启服务

(3)防火墙规则配置

防火墙,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义,到底防火墙如何工作,这就是防火墙的策略、规则、以达到让它对出入网络的IP、数据进行检测。

关闭防火墙:

1 [root@localhost ~]# systemctl stop firewalld
2 [root@localhost ~]# systemctl disable firewalld

设置系统安全机制: 

1 [root@localhost ~]# vim selinux config  或 vim /etc/sysconfig/selinux 文件
2 SELINUX=Permissive           //临时生效(Permissive)永久生效(enforcing)
3 [root@localhost ~]# setenforce 0
4 [root@localhost ~]# getenforce
5 Permissive

 清除所有iptables防火墙规则:

 1 [root@localhost ~]# iptables -F          //清空每一个规则链的管理权限
 2 [root@localhost ~]# iptables -X          //用于删除用户自定义的空链
 3 [root@localhost ~]# iptables -Z          //清空
 4 [root@localhost ~]# /usr/sbin/iptables-save  //保存规则
 5 # Generated by iptables-save v1.4.21 on Fri Mar 13 12:59:57 2020
 6 *filter
 7 :INPUT ACCEPT [30:1980]
 8 :FORWARD ACCEPT [0:0]
 9 :OUTPUT ACCEPT [16:1488]
10 COMMIT
11 # Completed on Fri Mar 13 12:59:57 2020

(3)开启路由转发

添加内核配置参数以启用这些功能,打开内核转发功能。

编辑配置文件/etc/sysctl.conf,将以下红色内容添加到文件sysctl.conf

 1 [root@localhost ~]# vim /etc/sysctl.conf
 2 # sysctl settings are defined through files in
 3 # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
 4 # Vendors settings live in /usr/lib/sysctl.d/.
 5 # To override a whole file, create a new file with the same in
 6 # /etc/sysctl.d/ and put new settings there. To override
 7 # only specific settings, add a file with a lexically later
 8 # name in /etc/sysctl.d/ and put new settings there.
 9 # For more information, see sysctl.conf(5) and sysctl.d(5).
10 net.ipv4.ip_forward = 1   //开启路由转发功能
11 net.ipv4.conf.default.rp_filter = 0  //禁用源路由核查功能
12 net.ipv4.conf.all.rp_filter = 0  //禁用所有IP源路路由

重新加载: 

1 [root@localhost ~]# sysctl -p
2 net.ipv4.ip_forward = 1 
3 net.ipv4.conf.default.rp_filter = 0 
4 net.ipv4.conf.all.rp_filter = 0

1.2.3 Docker引擎安装

1、执行Docker引擎下的脚本文件,脚本的安装没有平台限制,在任意Linux平台都可安装

[root@localhost ~]# curl -fsSL get.docker.com -o get-docker.sh

2、执行脚本通过脚本下载,设置阿里云镜像下载加速

[root@localhost ~]# sh get-docker.sh --mirror Aliyun

执行第2步的时候我遇到了老问题镜像无法加载,解决方法请点击:状态 :睡眠中,进程ID:13431,yum提示Another app is currently holding the yum lock; waiting for it to exit... - H_one - 博客园 (cnblogs.com)接下来正常执行以下步骤即可。

3、将Docker加入开机自启动的列表

[root@localhost ~]# systemctl enable docker

4、启动Docker服务(resatrt重启  status状态  stop停止)

[root@localhost ~]# systemctl start docker

5、查看当前用户组root属于root组

[root@localhost ~]# who
root     :0           2022-01-17 16:21 (:0)
root     pts/0        2022-03-14 19:08 (192.168.6.7)

6、创建Docker用户

[root@localhost ~]# sudo groupadd docker 
groupadd:“docker”组已存在

7、将当前用户加入Docker组

[root@localhost ~]# sudo usermod -aG docker $USER

8、查看Docker引擎的安装的版本

[root@localhost ~]# docker version

Client: Docker Engine – Community        # 客户端Docker引擎,写命令通过客户端去操作,把接受的命令发给服务端,服务端收到之后去操作,有点类似与QQ用户在客户端操作,操作的内容发给服务端来执行。

Server: Docker Engine – Community      # 服务端端Docker引擎,用来运行一个个容器。

9、代表了Docker的详细信息

[root@localhost ~]# docker info

 二、Docker镜像加速器配置

1、首先在阿里云官网“百度”登录自己的账号,查看Docker镜像加速服务。进入之后点击右上角的“控制台”搜索“容器镜像服务”。

 2、阿里云提供镜像加速服务,在那个系统下配置就使用那个系统。

 3、直接在阿里云官网上将他的命令粘贴过来(紧挨这句话上面的图片,里面蓝色方框里的命令)。

[root@localhost ~]# sudo mkdir -p /etc/docker
[root@localhost ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://6i1gxsyv.mirror.aliyuncs.com"]
> }
> EOF
[root@localhost ~]# sudo systemctl daemon-reload
[root@localhost ~]# sudo systemctl restart docker

systemctl daemon-reload 子命令

daemon-reload 是一个很容易被误用的子命令,主要是因为它名字中包含的 daemon 一词很容易让它和 reload 子命令混淆。
reload 子命令,它的作用是重新加载某个服务程序的配置文件。这里的程序指的是服务类型 unit 的配置中指定的程序,也就是我们常说的 daemon(提供某种服务的应用程序)。比如服务类型的 unit prometheus.service,提供服务的 daemon 程序在我的机器上是 /usr/local/share/prometheus/prometheus,所以 reload 子命令重新加载的是 prometheus 的配置文件。

如果把 daemon-reload 子命令中的 daemon 理解为 systemd 程序,就可以把这个命令解释为重新加载 systemd 程序的配置文件。而所有的 unit 配置文件都是作为 systemd 程序的配置文件存在的。这样得出的结论就是:

新添加 unit 配置文件时需要执行 daemon-reload 子命令
有 unit 的配置文件发生变化时也需要执行 daemon-reload 子命令
daemon-reload 命令会做很多的事情,其中之一是重新生成依赖树(也就是 unit 之间的依赖关系),所以当你修改了 unit 配置文件中的依赖关系后如果不执行 daemon-reload 命令是不会生效的。

4、接下来使用“docker info”命令查看是否有下面红色框中的网址,如果有的话就证明配置成功了。

posted @ 2022-06-08 20:40  H_one  阅读(718)  评论(0编辑  收藏  举报