CentOS安装Docker

一、安装Docker

1、查看内核版本

root账户登录,查看内核版本如下

[root@localhost ~]# uname -a 
Linux localhost.localdomain 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

关于内核,docker官方建议3.10以上

2、安装需要的软件包

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

3、设置yum源

这里提供两个

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、查看docker版本

[root@localhost ~]# yum list docker-ce --showduplicates | sort -r 
 * updates: mirrors.aliyun.com 
Loading mirror speeds from cached hostfile 
Loaded plugins: fastestmirror 
Installed Packages 
 * extras: mirrors.aliyun.com 
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable  
docker-ce.x86_64            3:20.10.6-3.el7                    @docker-ce-stable 
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable  
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable  
...

5、安装docker

这里安装最新版本

[root@localhost ~]# yum install docker-ce-20.10.6-3.el7

注意docker版本必须大于1.19.x才能编译version>3.8(此处version指的是docker-compose.yml中的version)

6、启动docker

[root@localhost ~]# systemctl start docker

将docker加入开机自启

[root@localhost ~]# systemctl enable docker

7、查看docker版本

[root@localhost ~]# docker version 
Client: Docker Engine - Community 
 Version:           20.10.6 
 API version:       1.41 
 Go version:        go1.13.15 
 Git commit:        370c289 
 Built:             Fri Apr  9 22:45:33 2021 
 OS/Arch:           linux/amd64 
 Context:           default 
 Experimental:      true 
 
Server: Docker Engine - Community 
 Engine: 
  Version:          20.10.6 
  API version:      1.41 (minimum version 1.12) 
  Go version:       go1.13.15 
  Git commit:       8728dd2 
  Built:            Fri Apr  9 22:43:57 2021 
  OS/Arch:          linux/amd64 
  Experimental:     false 
 containerd: 
  Version:          1.4.4 
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e 
 runc: 
  Version:          1.0.0-rc93 
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec 
 docker-init: 
  Version:          0.19.0 
  GitCommit:        de40ad0

二、安装Docker-Compose

[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

注意docker-compose的版本得大于1.25.x才能编译version>3.8(此处version指的是docker-compose.yml中的version)
查看docker-compose版本

[root@localhost ~]# docker-compose version 
docker-compose version 1.26.2, build eefe0d31 
docker-py version: 4.2.2 
CPython version: 3.7.7 
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

三、配置Docker

加载到/etc/docker,新建或者编辑daemon.json文件
注意此处daemon.json的文件名是固定的

[root@localhost ~]# cd /etc/docker/ 
[root@localhost docker]# ls 
daemon.json  key.json

1、配置镜像源

在daemon.json中添加如下代码段

{
...
"registry-mirrors": [ 
    "https://registry.aliyuncs.com" 
  ],
...
}

此处添加的是阿里镜像源

2、配置docker默认网桥

在docker启动时,会启动一个叫docker0的网桥,此网桥的ip地址默认为172.18.x.x,为了避免其与我们虚拟机的ip地址重合,我们需要配置docker默认网桥的ip地址,在daemon.json中添加如下代码段

"bip": "192.188.0.1/16",

重启docker,输入ifconfig查看

[root@localhost ~]# systemctl restart docker
[root@localhost ~]# ifconfig 
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500 
        inet 192.188.0.1  netmask 255.255.0.0  broadcast 192.188.255.255 
        inet6 fe80::42:a1ff:fe7e:d0b  prefixlen 64  scopeid 0x20<link> 
        ether 02:42:a1:7e:0d:0b  txqueuelen 0  (Ethernet) 
        RX packets 420  bytes 22800 (22.2 KiB) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 622  bytes 2092383 (1.9 MiB) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
        inet 172.18.3.171  netmask 255.255.252.0  broadcast 172.18.3.255 
        inet6 fe80::5054:ff:fe83:608b  prefixlen 64  scopeid 0x20<link> 
        ether 52:54:00:83:60:8b  txqueuelen 1000  (Ethernet) 
        RX packets 2449051  bytes 5347352163 (4.9 GiB) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 1703247  bytes 117348816 (111.9 MiB) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536 
        inet 127.0.0.1  netmask 255.0.0.0 
        inet6 ::1  prefixlen 128  scopeid 0x10<host> 
        loop  txqueuelen 1000  (Local Loopback) 
        RX packets 216  bytes 38880 (37.9 KiB) 
        RX errors 0  dropped 0  overruns 0  frame 0 
        TX packets 216  bytes 38880 (37.9 KiB) 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、配置Docker网络的默认值

通常情况下,使用docker-compose up或者自己通过 docker network create 创建自定义Docker网络,默认会从172.19.0.0/16选取可用网段,也是为了防止其与我们虚拟机的ip发生冲突,我们需要指定ip,在daemon.json中添加如下代码段

"default-address-pools": [{"base":"10.10.0.0/16","size":24}]

其中的ip地址可以自行指定

4、完整的配置

配置文件地址: /etc/docker/daemon.json

{ 
  "bip": "192.188.0.1/16", 
  "registry-mirrors": [
    "https://hccwwfjl.mirror.aliyuncs.com",
    "https://registry.aliyuncs.com" 
  ], 
  "default-address-pools": [{"base":"10.10.0.0/16","size":24}] 
}

四、普通用户运行docker命令

1、查看是否有docker用户组

root@localhost.localdomain:[/root]# cat /etc/group |grep docker
docker:x:1000: #表示存在

如果不存在,则需要通过以下命令添加

groupadd docker

2、查看 /var/run/docker.sock 的属性

root@localhost.localdomain:[/root]# ll /var/run/docker.sock
srw-rw----. 1 root docker 0 Nov 28 15:56 /var/run/docker.sock

如果不是docker则需要修改

chgrp docker /var/run/docker.sock

3、将普通用户添加至docker组

gpasswd -a test docker

此处test是添加的用户
然后刷新

newgrp docker
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容