Linux Docker 安装与使用详细教程

张开发
2026/4/9 16:03:38 15 分钟阅读

分享文章

Linux Docker 安装与使用详细教程
一、Docker 概述1.1 什么是 DockerDocker 是一个开源的应用容器引擎基于 Go 语言开发并遵从 Apache2.0 协议开源。它可以让开发者将应用及其依赖打包到一个轻量级、可移植的容器中然后发布到任何流行的 Linux 机器上实现虚拟化。Docker 的核心价值一次构建、随处运行更快速的应用交付和部署更便捷的升级和扩缩容更简单的系统运维更高效的计算资源利用1.2 Docker 核心概念概念说明类比镜像 (Image)只读的模板用于创建容器类面向对象容器 (Container)镜像的运行实例可独立运行应用对象面向对象仓库 (Repository)集中存放镜像的场所代码仓库Docker 架构组件Docker 主机 (Host)执行 Docker 守护进程和容器的物理或虚拟机Docker 客户端 (Client)通过命令行与 Docker 守护进程通信Docker Registry存储镜像的服务如 Docker Hub、阿里云镜像仓库二、 环境准备与卸载旧版本系统要求Docker 支持以下 64 位 Linux 发行版CentOS 7/8 及更高版本Ubuntu 16.04 及更高版本Debian、Fedora 等主流发行版在安装之前建议先卸载系统中可能存在的旧版本 Docker以避免冲突。# 更新包索引 sudo apt-get update # Ubuntu/Debian # 或 sudo yum update # CentOS/RHEL # 卸载可能存在的旧版本 sudo apt-get remove -y docker docker-engine docker.io containerd runc # 或 CentOS 命令 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine三、 安装 Docker 引擎根据你的 Linux 发行版选择以下任一种方式进行安装。方法 AUbuntu/Debian 安装步骤# 1. 安装依赖包 sudo apt-get install -y ca-certificates curl gnupg lsb-release # 2. 添加官方 GPG 密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 3. 设置稳定版仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 4. 安装 Docker Engine、CLI、Containerd sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin方法 BCentOS/RHEL 安装步骤# 1. 安装 yum-utils 工具 sudo yum install -y yum-utils # 2. 配置 Docker 稳定版仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 3. 安装 Docker 引擎及插件 sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 4. 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker方法 C一键脚本安装通用推荐如果不想手动配置可以使用官方或国内源的一键脚本# 官方脚本海外服务器使用 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 阿里云脚本国内推荐 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun四、配置镜像加速推荐由于 Docker Hub 的官方镜像位于海外国内拉取镜像速度较慢。建议配置阿里云或华为云的镜像加速器。获取加速器地址登录 阿里云容器镜像服务控制台。在“实例设置”或“镜像工具”中找到“镜像加速器”复制你的专属地址如https://xxxx.mirror.aliyuncs.com。配置 Docker Daemon创建或编辑配置文件/etc/docker/daemon.jsonsudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://xxxx.mirror.aliyuncs.com, // 替换为你的阿里云加速地址 https://docker.mirrors.ustc.edu.cn, // 中科大备用 https://hub-mirror.c.163.com // 网易备用 ] } EOF重启 Docker 生效sudo systemctl daemon-reload sudo systemctl restart docker五、免 sudo 权限配置为了避免每次运行docker命令都需要加sudo将当前用户加入docker用户组# 创建 docker 组如果不存在 sudo groupadd docker # 将当前用户加入 docker 组 sudo usermod -aG docker $USER # 刷新组权限或重新登录终端 newgrp docker六、核心概念与常用命令Docker 的核心概念包括镜像 (Image)、容器 (Container)和仓库 (Repository)。镜像管理命令命令说明示例docker images查看本地所有镜像docker imagesdocker pull从仓库拉取镜像docker pull nginx:latestdocker search搜索镜像docker search redisdocker rmi删除本地镜像docker rmi nginx容器管理命令命令说明示例docker run创建并启动容器docker run -d -p 80:80 --name my-nginx nginxdocker ps查看运行中的容器docker psdocker ps -a查看所有容器含停止的docker ps -adocker stop停止容器docker stop my-nginxdocker start启动已停止的容器docker start my-nginxdocker rm删除已停止的容器docker rm my-nginxdocker exec进入运行中的容器docker exec -it my-nginx /bin/bash七、实战部署 Nginx 服务通过一个简单的例子验证安装是否成功。拉取 Nginx 镜像docker pull nginx:latest启动容器docker run -d \ --name my-web \ -p 8080:80 \ -v $(pwd)/html:/usr/share/nginx/html \ nginx-d后台守护进程运行。-p 8080:80将宿主机的 8080 端口映射到容器的 80 端口。-v挂载本地目录实现数据持久化。验证在浏览器访问http://你的服务器IP:8080如果看到 Welcome to nginx! 页面说明部署成功。八、进阶使用 Docker Compose对于微服务架构通常需要同时启动多个容器如 Web MySQL。使用Docker Compose可以通过一个 YAML 文件定义和运行多容器应用。1、安装 Docker Compose 插件通常在安装引擎时已包含如未安装# 安装最新版 Compose 插件 DOCKER_CONFIG${DOCKER_CONFIG:-$HOME/.docker} mkdir -p $DOCKER_CONFIG/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose chmod x $DOCKER_CONFIG/cli-plugins/docker-compose2、创建docker-compose.ymlversion: 3 services: web: image: nginx:latest ports: - 8080:80 volumes: - ./html:/usr/share/nginx/html db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: example3、启动应用docker compose up -d这将以后台模式启动 Nginx 和 MySQL 两个容器。九、常见问题排查权限被拒绝如果提示Got permission denied while trying to connect to the Docker daemon socket请检查是否执行了sudo usermod -aG docker $USER并重新登录终端。镜像拉取慢请务必检查/etc/docker/daemon.json文件中的镜像加速器配置是否正确并执行了systemctl restart docker。端口冲突如果提示port is already allocated说明宿主机端口被占用请更换映射端口如-p 8081:80。

更多文章