在Linux系统中使用Docker容器可以高效实现应用的打包、分发和运行,无需担心环境依赖冲突问题,大幅简化开发、测试和生产环境的部署流程。

一、Docker安装
不同Linux发行版的Docker安装方式略有差异,以下以Ubuntu和CentOS为例说明安装步骤。
1. Ubuntu系统安装
首先更新系统软件包索引,然后安装Docker依赖包,最后添加Docker官方源并安装Docker引擎,具体命令如下:
# 更新软件包索引 sudo apt-get update # 安装依赖包 sudo apt-get install -y ca-certificates curl gnupg lsb-release # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg # 添加Docker软件源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io
2. CentOS系统安装
CentOS系统下需要先卸载旧版本Docker,再安装需要的依赖包,添加Docker源后完成安装:
# 卸载旧版本Docker sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装依赖包 sudo yum install -y yum-utils # 添加Docker软件源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker引擎 sudo yum install -y docker-ce docker-ce-cli containerd.io
安装完成后启动Docker服务并设置开机自启:
# 启动Docker服务 sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker # 验证安装是否成功,运行hello-world镜像 sudo docker run hello-world
二、Docker镜像操作
镜像是容器运行的基础,使用前需要先获取对应的镜像,也可以将自己定制的镜像推送到镜像仓库。
1. 拉取镜像
从Docker Hub拉取官方镜像,以Nginx为例:
# 拉取最新版Nginx镜像 sudo docker pull nginx:latest # 拉取指定版本Nginx镜像 sudo docker pull nginx:1.25
2. 查看本地镜像
查看当前系统已经拉取的所有镜像:
sudo docker images
3. 删除镜像
当本地镜像不再使用时可以删除,注意删除前需要确保没有基于该镜像运行的容器:
# 通过镜像ID删除镜像 sudo docker rmi 镜像ID # 通过镜像名称和标签删除镜像 sudo docker rmi nginx:latest
三、Docker容器操作
容器是镜像的运行实例,以下是容器的创建、启动、停止、删除等常用操作。
1. 创建并启动容器
使用docker run命令可以创建并启动容器,常用参数说明如下:
- -d:后台运行容器并返回容器ID
- -p:端口映射,格式为宿主机端口:容器端口
- --name:为容器指定名称
- -v:挂载宿主机目录到容器内部
以启动Nginx容器为例:
# 启动Nginx容器,后台运行,映射宿主机8080端口到容器80端口,容器命名为my-nginx sudo docker run -d -p 8080:80 --name my-nginx nginx:latest
2. 查看运行中的容器
查看当前正在运行的容器:
sudo docker ps
查看所有容器(包括已停止的):
sudo docker ps -a
3. 停止与启动容器
停止运行中的容器:
# 通过容器名称停止 sudo docker stop my-nginx # 通过容器ID停止 sudo docker stop 容器ID
启动已停止的容器:
# 通过容器名称启动 sudo docker start my-nginx # 通过容器ID启动 sudo docker start 容器ID
4. 进入运行中的容器
如果需要进入容器内部执行命令,可以使用docker exec命令:
# 进入my-nginx容器,打开bash终端 sudo docker exec -it my-nginx /bin/bash
5. 删除容器
删除已停止的容器:
# 通过容器名称删除 sudo docker rm my-nginx # 通过容器ID删除 sudo docker rm 容器ID # 强制删除运行中的容器 sudo docker rm -f my-nginx
四、容器常用配置示例
以下是一个挂载宿主机目录并自定义配置的Nginx容器启动示例:
# 在宿主机创建目录用于存放静态文件和配置 mkdir -p /data/nginx/html /data/nginx/conf # 先临时启动一个Nginx容器,复制默认配置到宿主机 sudo docker run --name temp-nginx -d nginx:latest sudo docker cp temp-nginx:/etc/nginx/nginx.conf /data/nginx/conf/ sudo docker cp temp-nginx:/etc/nginx/conf.d /data/nginx/conf/ sudo docker stop temp-nginx sudo docker rm temp-nginx # 启动自定义配置的Nginx容器,挂载目录 sudo docker run -d -p 8080:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf/conf.d:/etc/nginx/conf.d --name my-nginx nginx:latest
此时将静态文件放到宿主机的/data/nginx/html目录下,就可以直接通过访问宿主机8080端口查看内容。
五、常见问题处理
如果普通用户执行Docker命令时提示权限不足,可以将当前用户添加到docker用户组:
# 添加docker用户组,一般安装Docker时已经自动创建 sudo groupadd docker # 将当前用户添加到docker组 sudo usermod -aG docker $USER # 更新用户组信息,重新登录后生效 newgrp docker
如果需要清理无用的容器、镜像、网络和缓存数据,可以使用Docker自带的清理命令:
# 清理所有停止的容器、未被使用的镜像、网络和缓存 sudo docker system prune -a
DockerLinuxDocker容器docker_command修改时间:2026-06-21 01:30:42