
1. 查看是否已经安装docker在终端中键入sudodocker--version如果返回版本信息表示已经安装了docker.2. 卸载已经安装的docker# 卸载docker sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # 清理不再需要的依赖 sudo apt autoremove -y sudo apt autoclean # 查看docker是否已经卸载干净 docker --version ## 如果提示 command not found说明 Docker 客户端已移除。3. 安装docker3.1 在联网机器上下载安装包访问 Docker 官方静态二进制下载页面https://download.docker.com/linux/static/stable/根据你的系统架构选择对应目录通常是x86_64然后下载最新的.tgz文件。例如或者通过命令行下载wget https://download.docker.com/linux/static/stable/x86_64/docker-29.8.2.tgz如果需要 Docker Compose同样需要在联网机器上下载对应的二进制文件https://github.com/docker/compose/releases3.2 将文件传输到离线ubuntu机器上用 U 盘、SCP 或其他方式将下载的.tgz文件和 Docker Compose 二进制文件拷贝到目标机器上。3.3 解压并安装二进制文件# 解压 Docker 安装包tar-xvfdocker-29.8.2.tgz# 将 docker 目录下的所有可执行文件复制到 /usr/binsudocpdocker/* /usr/bin/# 安装 Docker Compose假设文件名为 docker-compose-linux-x86_64sudomvcompose-5.6.0 /usr/local/bin/docker-composesudochmodx /usr/local/bin/docker-compose创建systemd服务单元文件。说明systemctl 命令需要 docker.service 这个文件来管理 Docker 服务缺少它系统就找不到服务了。sudo nano /etc/systemd/system/docker.service将以下配置内容完整地粘贴到文件中[Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target在 nano 编辑器中按 Ctrl X然后按 Y最后按 Enter 保存并退出。# 重新加载 systemd 配置 sudo systemctl daemon-reload # 启动 docker sudo systemctl start docker # 设置开机自启动 sudo systemctl enable docker.service # 查看docker的运行状态 sudo systemctl status docker # 查看docker是否安装成功 docker --version4. 启动/关闭/重启docker# 启动 Dockersudosystemctl startdocker# 关闭 Dockersudosystemctl stopdocker# 重启 Dockersudosystemctl restartdocker# 查看 Docker 运行状态sudosystemctl statusdocker5. 验证docker是否正常docker version docker info docker ps6. 配置国内镜像源如果/etc/docker/daemon.json文件不存在需要先创建目录然后编辑文件sudo mkdir -p /etc/docker sudo nano /etc/docker/daemon.json将以下内容粘贴到文件中可配置多个镜像源Docker 会按顺序尝试{ registry-mirrors: [ https://docker.m.daocloud.io, https://docker.1ms.run, https://docker.xuanyuan.me ] }注意镜像源地址不要加尾部斜杠。如果文件中已有其他配置如代理只需添加registry-mirrors字段不要覆盖原有内容。在nano中按Ctrl X再按Y最后按Enter。重载配置并重启dockersudo systemctl daemon-reload sudo systemctl restart docker7. 拉取测试镜像7.1 拉取测试镜像sudo docker pull hello-world拉取得到的镜像的默认存储位置位于/var/lib/docker下载的镜像不是一个单独的文件而是被 Docker 按“分层存储”的方式拆开存放在 Docker 的数据目录里。在这个目录下和hello-world镜像相关的主要有路径内容/var/lib/docker/image/overlay2/imagedb/content/sha256/镜像元数据如镜像 ID、配置信息/var/lib/docker/image/overlay2/repositories.json镜像名称和标签与镜像 ID 的对应关系/var/lib/docker/overlay2/镜像层数据每个层一个目录/var/lib/docker/overlay2/层ID/diff/该层实际的文件内容hello-world镜像非常小它的可执行文件hello就在某一层的diff目录中。设置docker的pull国内镜像7.2 运行测试镜像sudo docker run hello-world如果docker正常安装会得到以下输出Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the hello-world image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. ...8. 常用docker命令# 查看本地镜像 docker images # 查看正在运行的容器 sudo docker ps # 查看正在运行的容器包括已经停止的 sudo docker ps -a # 停止一个指定镜像 sudo docker stop 容器ID # 如 sudo docker stop d7db8a2976fc # 删除停止的容器 sudo docker rm 容器ID # 如 sudo docker rm d7db8a2976fc # 删除指定镜像 rmi: remove-image sudo docker rmi 镜像ID也可以直接强制删除镜像sudo docker rmi 镜像ID但不推荐因为它会一并删除引用该镜像的容器.