Docker安装(CentOS和Ubuntu环境)

安装Docker

一键安装Docker

1
bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true --close-firewall false --ignore-backup-tips

启动

1
systemctl start docker

查看版本

1
2
docker version
docker-compose version

开机自启

1
systemctl enable docker

查看是否开机自启

1
systemctl is-enabled docker

查看状态

1
systemctl status docker

设置镜像保存位置

假设新路径为/data/tools/docker

方式1(新版本)(推荐)

编辑 /etc/docker/daemon.json,添加以下内容

1
2
3
{
"data-root": "/data/tools/docker"
}

移动现有的 Docker 数据(可选)

1
sudo mv /var/lib/docker /data/tools/docker

重新启动 Docker 服务

1
sudo systemctl restart docker

检查 Docker 是否正确运行

1
docker info | grep 'Docker Root Dir'

方式2 修改默认路径(旧版本)

0) 停止服务

1
systemctl stop docker

1) 修改配置

指定镜像和容器存放路径的参数是--graph=/var/lib/docker

但是不同系统下配置的位置不同

  • CentOS

    位置 /etc/sysconfig/docker 添加下面这行

    1
    vi /etc/sysconfig/docker

    修改

    1
    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'

    修改为

    1
    OPTIONS='--graph=/data/tools/docker --selinux-enabled --log-driver=journald --signature-verification=false'

2) 修改完成后重载配置文件

1
sudo systemctl daemon-reload

3) 重启docker服务

1
sudo systemctl  restart docker.service

4) 查看信息

1
sudo docker info | grep "Docker Root Dir"

出现以下则证明成功了

1
Docker Root Dir: /data/tools/docker

方式3 设置软链接(不推荐)

1.首先停掉Docker服务:

1
sudo systemctl stop docker

或者

1
service docker stop

2.对之前的数据做个文件备份

1
tar czvf /mnt/docker-backup.tar /var/lib/docker

3.然后迁移整个/var/lib/docker目录到目的路径:

1
mv /var/lib/docker /data/tools/docker

4.建立symlink软链接

1
ln -s /data/tools/docker /var/lib/docker

5.确认文件夹类型为symlink 类型

1
ls -al /var/lib/docker

6.启动Docker

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。

1
sudo systemctl start docker

如果像换成第一种方式就要先删除软链接

1
rm -rf /var/lib/docker

设置镜像源

针对Docker客户端版本大于 1.10.0 的用户

创建或修改 /etc/docker/daemon.json 文件

1
vi /etc/docker/daemon.json

添加或修改

1
2
3
4
5
6
7
8
9
{
"registry-mirrors": [
"https://docker.1ms.run/",
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}

重启Docker

1
2
systemctl daemon-reload
systemctl restart docker.service

注意:

现在之前开放的镜像源基本都不能用了,这里使用的是毫秒镜像,需要登录自己的账号。

查看镜像设置是否生效

1
sudo docker info

可用源

2025-03-21测试可用源

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}

测试可用源

1
2
3
4
sudo docker pull docker.m.daocloud.io/hello-world
sudo docker pull docker.imgdb.de/hello-world
sudo docker pull docker-0.unsee.tech/hello-world
sudo docker pull docker.hlmirror.com/hello-world

阿里云

https://cr.console.aliyun.com/cn-huhehaote/instances

毫秒镜像

https://1ms.run/

默认安装的Docker版本太低,需要我们使用上面的一键安装脚本安装。

全局配置

1
curl -sSLO https://static.1ms.run/1ms-helper.bin && chmod +x 1ms-helper.bin && ./1ms-helper.bin config:mirror

先安装依赖

1
sudo yum reinstall ca-certificates

登录

1
curl -sSLO https://static.1ms.run/1ms-helper.bin && chmod +x 1ms-helper.bin && ./1ms-helper.bin config:account

安装

1
docker pull 1panel/openresty:1.21.4.3-3-3-focal

启动镜像

项目内无文件存储

1
docker run -d -p 8081:8080 -m 512M --memory-swap -1 --name tomcat01 -v /data/wwwroot/tomcat01/:/opt/tomcat8/webapps/  -v /data/wwwroot/log/tomcat01/:/opt/tomcat8/logs/ --restart=always 71dc929e155c

项目带文件存储

1
docker run -d -p 8081:8080 -m 512M --memory-swap -1 --name tomcat01 -v /data/wwwroot/tomcat01/:/opt/tomcat8/webapps/  -v /data/wwwroot/log/tomcat01/:/opt/tomcat8/logs/ -v /data/wwwroot/tomcat01/ROOT/static/:/data/wwwroot/tomcat01/ROOT/static/ --restart=always 71dc929e155c

常用命令

查看运行的容器

1
docker ps -a

查看下载的镜像

1
docker images