安装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”命令查看是否有下面红色框中的网址,如果有的话就证明配置成功了。