Docker容器安装与配置全攻略
Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上。以下是 Docker 容器的安装与配置全攻略。
一、安装 Docker
(一)在 Ubuntu 上安装 Docker
- 更新软件包索引
sudo apt update
- 安装必要的依赖包
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 添加 Docker 的 APT 源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- 再次更新软件包索引
sudo apt update
- 安装 Docker CE(社区版)
sudo apt install docker-ce
- 验证 Docker 是否安装成功
sudo docker --version
(二)在 CentOS 上安装 Docker
- 更新系统软件包
sudo yum update
- 添加 Docker 的官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker CE
sudo yum install docker-ce
- 启动 Docker 服务
sudo systemctl start docker
- 设置 Docker 服务开机自启
sudo systemctl enable docker
- 验证 Docker 是否安装成功
docker --version
(三)在 Windows 上安装 Docker
- 下载 Docker Desktop
访问 Docker 官网,下载适用于 Windows 的 Docker Desktop 安装程序。 - 运行安装程序
双击下载的安装程序,按照提示进行安装。在安装过程中,可能需要启用 Windows 的 Hyper-V 功能。 - 验证安装
安装完成后,启动 Docker Desktop,在命令行中输入docker --version
验证是否安装成功。
二、配置 Docker
(一)配置 Docker 镜像加速器
由于国内访问 Docker Hub 的速度较慢,可以配置镜像加速器来提高镜像下载速度。以下以阿里云镜像加速器为例:
1. 登录阿里云容器服务控制台
访问 阿里云容器服务控制台,获取镜像加速器的地址。
2. 编辑 Docker 配置文件
在 Linux 上,编辑 /etc/docker/daemon.json
文件(如果文件不存在,则创建该文件),添加以下内容:
{
"registry-mirrors": ["https://<你的加速器地址>"]
}
在 Windows 上,右键点击 Docker Desktop 图标,选择“设置”,在“Daemon”选项卡中,找到“Registry mirrors”字段,添加加速器地址。
3. 重启 Docker 服务
在 Linux 上,执行 sudo systemctl restart docker
重启 Docker 服务;在 Windows 上,点击 Docker Desktop 界面中的“Restart”按钮重启服务。
(二)管理 Docker 用户权限
默认情况下,只有 root
用户或属于 docker
用户组的用户才能执行 Docker 命令。可以通过将用户添加到 docker
用户组来授予普通用户 Docker 权限。
1. 创建 docker
用户组(如果尚未创建)
sudo groupadd docker
2. 将当前用户添加到 docker
用户组
sudo usermod -aG docker $USER
3. 重新登录系统
为了使用户组更改生效,需要重新登录系统。可以通过注销并重新登录,或者使用 newgrp docker
命令切换到 docker
用户组。
三、Docker 容器的基本操作
(一)拉取镜像
从 Docker Hub 或其他镜像仓库拉取镜像,例如拉取 Ubuntu 镜像:
docker pull ubuntu
(二)运行容器
使用拉取的镜像运行容器,例如运行一个 Ubuntu 容器并进入交互式终端:
docker run -it ubuntu /bin/bash
参数说明:
- -i
:让容器的标准输入保持打开。
- -t
:分配一个伪终端。
- ubuntu
:要使用的镜像名称。
- /bin/bash
:在容器内执行的命令。
(三)查看正在运行的容器**
docker ps
如果要查看所有容器(包括已停止的容器),可以使用 docker ps -a
命令。
(四)停止容器
使用容器 ID 或容器名称停止容器,例如停止容器 ID 为 abc123
的容器:
docker stop abc123
(五)删除容器
删除已停止的容器,例如删除容器 ID 为 abc123
的容器:
docker rm abc123
如果要删除所有已停止的容器,可以使用 docker container prune
命令。
四、Docker 网络与存储配置
(一)Docker 网络配置
- 查看 Docker 网络
docker network ls
- 创建自定义网络
docker network create my_network
- 启动容器并连接到自定义网络
docker run -d --name my_container --network my_network nginx
(二)Docker 存储配置
- 数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 Union 文件系统,提供以下功能:- 数据卷可以在容器之间共享和重用。
- 对数据卷的修改会立即生效。
- 对数据卷的更新不会影响镜像。
- 卷会一直存在,直到没有容器使用。
创建数据卷:
docker volume create my_volume
启动容器并挂载数据卷:
docker run -d -v my_volume:/app nginx
- 绑定挂载
绑定挂载可以将主机上的文件或目录挂载到容器中。例如,将主机的/home/user/data
目录挂载到容器的/app
目录:docker run -d -v /home/user/data:/app nginx
五、常见问题及解决方法
(一)Docker 命令执行权限不足
如果出现“permission denied”错误,可能是因为当前用户没有 Docker 执行权限。可以按照前面提到的管理 Docker 用户权限的方法,将用户添加到 docker
用户组。
(二)镜像拉取失败
可能是由于网络问题或镜像源不可用。可以尝试配置镜像加速器,或者检查网络连接。
(三)容器启动失败
可以通过查看容器日志来排查问题,例如查看容器 ID 为 abc123
的容器日志:
docker logs abc123
通过以上步骤,你可以完成 Docker 的安装、配置以及基本的容器操作。在实际应用中,还可以根据具体需求进一步深入学习 Docker 的高级特性,如 Docker Compose、Docker Swarm 等,以实现更复杂的应用部署和管理。