技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Docker>正文
CentOS下安装二进制Docker-ce社区版本
2021年12月03日 Docker 暂无评论 ⁄ 被围观 1,200次+

Docker是一个开源的应用容器引擎,目前分为社区版本(CE)和企业版本(EE),一般使用社区版本。

CentOS系统下Docker目前支持CentOS 7.x 8.x 版本,系统内核版本为Linux 3.10及其以上版本。

一、安装前准备工作

1、CentOS使用rpm包升级系统内核

https://www.osyunwei.com/archives/12038.html

2、CentOS系统关闭selinux

#执行以下命令

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

reboot #重启系统

/usr/sbin/sestatus -v #查看selinux状态,disabled表示关闭

[root@master01 ~]# /usr/sbin/sestatus -v

SELinux status: disabled

3、防火墙设置

一般情况下访问Docker容器内部的应用需要设置宿主机端口映射功能,测试环境下可以开启iptables防火墙并清空防火墙规则,

正式生产环境建议开启防火墙,再按需开启相应端口号。

3.1关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl mask firewalld

systemctl stop firewalld

yum remove firewalld

3.2安装iptables防火墙

yum install iptables-services #安装

systemctl enable iptables.service #设置防火墙开机启动

iptables -F #清空规则

service iptables save #保存配置规则

systemctl restart iptables.service #启动防火墙使配置生效

[root@localhost ~]# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.4.21 on Fri Dec 3 23:15:39 2021

*filter

:INPUT ACCEPT [13:696]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [16:1520]

COMMIT

# Completed on Fri Dec 3 23:15:39 2021

4、关闭交换分区

#执行以下命令

swapoff -a

sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

[root@localhost ~]# free -m

total used free shared buff/cache available

Mem: 1960 107 1634 8 217 1703

Swap: 0 0 0

5、调整内核参数

5.1

#执行以下命令

modprobe br_netfilter

modprobe ip_vs

modprobe ip_conntrack

cat >> /etc/rc.d/rc.local << EOF

modprobe br_netfilter

modprobe ip_vs

modprobe ip_conntrack

EOF

chmod +x /etc/rc.d/rc.local

5.2

vi /etc/security/limits.conf #在最后一行添加以下代码

* hard nofile 65535

* soft nofile 65535

* hard nproc 65535

* soft nproc 65535

:wq! #保存退出

#查看hard和soft限制数

ulimit -Hn

ulimit -Sn

5.3

vi /etc/sysctl.d/docker.conf

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-arptables=1

net.ipv4.ip_forward = 1

vm.swappiness = 0

vm.overcommit_memory = 1

vm.panic_on_oom = 0

fs.inotify.max_user_instances = 8192

fs.inotify.max_user_watches = 1048576

fs.file-max = 52706963

fs.nr_open = 52706963

net.ipv6.conf.all.disable_ipv6 = 1

net.netfilter.nf_conntrack_max = 2310720

:wq! #保存退出

sysctl --system

sysctl -p /etc/sysctl.d/docker.conf

5.4开启IPVS支持

vi /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"

for kernel_module in ${ipvs_modules}; do

/sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1

if [ $? -eq 0 ]; then

/sbin/modprobe ${kernel_module}

fi

done

:wq! #保存退出

#执行以下命令使配置生效

chmod 755 /etc/sysconfig/modules/ipvs.modules

sh /etc/sysconfig/modules/ipvs.modules

lsmod | grep ip_vs

二、CentOS 7.9安装二进制Docker-ce社区版本

1、卸载旧版本(如果没有安装就不需要执行)

yum remove docker docker-common docker-selinux docker-engine

2、安装包下载地址

https://download.docker.com/linux/static/stable/x86_64/

选择最新版本docker-20.10.9.tgz

cd /usr/local/src

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

3、安装docker

#解压

cd /usr/local/src

tar -zxvf docker-20.10.9.tgz

#将解压出来的docker文件移动到/usr/bin/目录下

mv /usr/local/src/docker/* /usr/bin/

4、设置docker开机启动

#添加docker用户组

groupadd docker

在/usr/lib/systemd/system/目录创建编辑docker.service文件

vi /usr/lib/systemd/system/docker.service

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

#BindsTo=containerd.service

After=network-online.target firewalld.service containerd.service

Wants=network-online.target

Requires=docker.socket

[Service]

Type=notify

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

Delegate=yes

KillMode=process

OOMScoreAdjust=-1000

[Install]

WantedBy=multi-user.target

:wq! #保存退出

#添加执行权限

chmod +x /usr/lib/systemd/system/docker.service

vi /usr/lib/systemd/system/docker.socket

[Unit]

Description=Docker Socket for the API

PartOf=docker.service

[Socket]

ListenStream=/var/run/docker.sock

SocketMode=0660

SocketUser=root

SocketGroup=docker

[Install]

WantedBy=sockets.target

:wq! #保存退出

systemctl daemon-reload #重新加载配置,修改docker.service文件后要重新加载

systemctl start docker #启动docker

systemctl enable docker.service #添加开机启动

systemctl status docker #查看docker状态

docker version #查看docker版本

5、配置docker镜像加速

由于Docker Hub的服务器在国外,下载docker镜像比较慢,我们可以配置国内的镜像地址,这样下载docker镜像速度就会很快。

国内主要的镜像加速器有:

163:https://hub-mirror.c.163.com

百度:https://mirror.baidubce.com/

阿里云:https://<自己的id>.mirror.aliyuncs.com

#使用阿里云账号登录https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登录成功后,左侧菜单-容器镜像服务-镜像工具-镜像加速器-加速器

#CentOS7.x已使用systemd进行服务管理,对于使用systemd的系统,在/etc/docker/daemon.json文件中进行添加

mkdir -p /etc/docker #创建目录,执行以下操作

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com"]

}

EOF

#查看

[root@master01 yum.repos.d]# cat /etc/docker/daemon.json

{

"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com"]

}

vi /etc/docker/daemon.json #编辑配置文件,可以添加多个docker镜像地址

{

"registry-mirrors": ["https://t1fyrekt.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]

}

:wq! #保存退出

systemctl daemon-reload

systemctl restart docker #重启docker

docker info #检查docker镜像加速器是否配置成功

Registry Mirrors:

https://t1fyrekt.mirror.aliyuncs.com/

https://hub-mirror.c.163.com/

https://mirror.baidubce.com/

Live Restore Enabled: false

Product License: Community Engine

#可以看到Registry Mirrors:下面有我们设置的镜像地址,说明配置成功

6、测试docker是否可用

docker pull hello-world #下载一个镜像实例

[root@localhost ~]# docker pull hello-world

Using default tag: latest

latest: Pulling from library/hello-world

2db29710123e: Pull complete

Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685

Status: Downloaded newer image for hello-world:latest

docker.io/library/hello-world:latest

docker run hello-world #运行一个镜像实例

docker images hello-world #查看该镜像的信息

[root@localhost ~]# docker images hello-world

REPOSITORY TAG IMAGE ID CREATED SIZE

hello-world latest feb5d9fea6a5 2 months ago 13.3kB

7、安装Docker-Compose

Docker-Compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用Docker-Compose,我们可以通过yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

Docker-Compose依靠Docker进行工作,必须确保已经安装了docker才能安装Docker-Compose

#把docker-compose安装在/usr/local/bin/目录下

#执行一下命令

curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

#添加执行权限

chmod +x /usr/local/bin/docker-compose

#查看版本

docker-compose --version

[root@localhost bin]# docker-compose --version

Docker Compose version v2.2.2

三、使用docker部署应用

docker search nginx #查找Docker Hub上的nginx镜像

docker pull nginx #拉取官方Nginx镜像

docker images nginx #查看镜像

[root@localhost ~]# docker images nginx

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest f652ca386ed1 45 hours ago 141MB

#使用NGINX默认的配置来启动一个Nginx容器实例

docker run --rm --name nginx-demo -p 8080:80 -d nginx

浏览器打开http://192.168.21.8:8080/可以看到web页面,说明部署成功。

参数说明:

--rm:容器终止运行后,自动删除容器文件

--name nginx-demo:容器名为nginx-demo,可以自定义设置

-p: 端口进行映射,将本地8080端口映射到容器内部的80端口

-d:容器启动后,在后台运行

docker container ps #查看启动的docker容器

docker stop nginx-demo #停止容器

docker run --restart=always --name nginx-demo -p 8080:80 -d nginx #参数 --restart=always 表示宿主机重启后容器开机自启动

至此,CentOS下安装二进制Docker-ce社区版本安装完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2022 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接