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 ~]#
#重启docker
systemctl restart docker
#设置开机启动
systemctl enable docker
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