大学生必知必会技能系列03--centos系统下安装docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

安装前提

Centos仅发行版本中的内核支持 Docker;
Docker 运行在 CentOS 7 上时,要求系统为64位、系统内核版本为 3.10 以上;
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
安装docker时要先卸载掉旧的docker。

确认系统

首先确认Centos的系统是否为64位,内核版本是否满足上述条件,使用 uname -r 查看当前系统内核版本。

[root@localhost /]# uname -r
3.10.0-693.el7.x86_64

 
 
   
   
   
   

开始安装

提前准备--切换yum源为阿里云yum源(命令解释略)

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
 
 
   
   
   
   
yum install -y wget
 
 
   
   
   
   
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 
 
   
   
   
   
yum clean all
 
 
   
   
   
   
yum makecache
 
 
   
   
   
   

1. 安装依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

 
 
   
   
   
   

yum-util 提供yum-config-manager
device-mapper 存储驱动程序需要依赖 device-mapper-persistent-data 和 lvm2

2. 安装最新版本的 Docker 和 containerd

#最新的docker社区版
yum install -y docker-ce docker-ce-cli containerd.io

 
 
   
   
   
   

3. 指定docker最终竞选和容器路径(可跳过)

需要注意的时docker在19.xx及之前版本指定路径使用的是 --graph ;而在docker 19.xx之后指定路径时使用的是 data-root实测docker 20.10.21中也可以使用–graph)。
docker指定路径需要修改 /usr/lib/systemd/system/docker.service,
直接使用代码修改(点一次,不小心加多了就去 /usr/lib/systemd/system/docker.service删)

#docker 19.xx 之后
sed -i 's/-H/ \-\-data\-root \/opt\/docker &/' /usr/lib/systemd/system/docker.service
#docker 19.xx及之前
sed -i 's/-H/ \-\-graph \/opt\/docker &/' /usr/lib/systemd/system/docker.service

 
 
   
   
   
   

或者 vi /usr/lib/systemd/system/docker.service
找到 [Service],在 ExecStart中加入 --graph /opt/docker--data-root /opt/docker

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd  --graph /opt/docker -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

或者修改docker的配置文件/etc/docker/daemon.json,效果一样。

#在其中添加
"graph":"/opt/docker"
#或
"data-root":"/opt/docker"

 
 
   
   
   
   

修改完了之后使用 systemctl daemon-reload 重新加载服务

[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# 

 
 
   
   
   
   

启动dokcer

#重启docker
systemctl restart docker
#设置开机启动
systemctl enable docker

 
 
   
   
   
   

扩展:安装portainer

portainer就是一个docker的可视化管理平台,这里的是中文版的

docker pull 6053537/portainer-ce 
docker volume create portainer_data
docker run \
-d \
--name portainer \
-p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
6053537/portainer-ce

 
 
   
   
   
   

你可能感兴趣的:(docker,centos,运维)