Docker 安装与使用(新手入门篇)
Docker 是近年流行的 Linux 容器管理工具,其在 Linux 内核资源分离机制上进行了优化整合,使得容器的创建和管理变的容易。实际使用最大好处是,可以为程序提供一致运行环境,避免因环境配置不同而引发问题,提高服务部署与维护效率。较之传统虚拟机解决方案,容器具有低成本开销的优势。
对于普通用户来说,使用 Docker 可以帮助我们快速安装软件。以往 Linux 系统上如果软件仓库没有,通常要编译安装。麻烦不说还易遇到依赖项问题,Docker 的出现可以很好解决这个问题。
Docker 安装
Docker 区分社区版和商业版两种。后者包含一些收费服务,支持周期更长。个人用户选择 Docker CE(社区版)即可。
笔者平时习惯用 CentOS,故这里只介绍 CentOS 安装步骤,其它系统可以参考官方教程,链接如下。
CentOS 安装 Docker 要求系统版本最低 CentOS 7,并且没有禁用 centos-extras
(默认开启)。
1. 安装 Docker CE 依赖项。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加 Docker CE 官方软件源。虽然直接 YUM 安装也可以,但版本可能不是最新的。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果用的国内主机,从官方源下载速度可能很慢,可以改用中国科大镜像源安装。
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
3. 更新软件源缓存,然后安装 Docker CE。
sudo yum makecache fast sudo yum install -y docker-ce
Docker 配置
1. 安装后,启动 Docker 并设置开机自启。
sudo systemctl start docker sudo systemctl enable docker
2. 非 root
用户运行 Docker 命令需要加 sudo
,为避免此麻烦,可以将用户添加至 docker
组。
sudo usermod -aG docker 用户名
3. 为改善国内主机获取 Docker 应用镜像的速度,建议使用 Docker 国内加速镜像。将下面内容加入 Docker 配置文件 /etc/docker/daemon.json
(如果文件不存在请创建)。方法适用于高版本 CentOS & Ubuntu & Debian,也就是使用 systemd
的系统。
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
保存后重启 Docker 服务生效。
sudo systemctl daemon-reload sudo systemctl restart docker
4. 测试安装的 Docker 是否能正常工作,这里运行一个官方 hello-world
应用。
docker run hello-world
上面命令会先在本地查找镜像,如果没有会从官方 Docker Hub 库下载。提示以下信息表明运行正常。
Hello from Docker! This message shows that your installation appears to be working correctly.
补充:如果 CentOS 使用 Docker 过程中出现以下报错信息。
WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
请修改 /etc/sysctl.conf
内核配置文件,将相关参数值改为 1,运行 sudo sysctl -p
刷新后重试。
Docker 使用
Docker 安装配置后就可以创建容器运行你需要的应用了。下面演示下用法。
1. Docker Hub 有大量应用提供。例如我们获取这个由 Linode 提供的 LAMP 应用。
docker pull linode/lamp:latest
上面命令 linode/lamp
表示提供镜像的用户名和软件名,latest
为镜像标签,latest
是最新版本的意思。如果有其他版本,可以指定获取特定版本。
2. 根据所获取的镜像运行 LAMP 容器。
docker run -p 80:80 -t -i linode/lamp /bin/bash
解释上面命令里的参数含义:
-p 80:80
映射端口,将宿主机 80 端口映射到容器 80 端口;-t -i
终端交互式操作,将容器 Shell 映射到宿主机 Shell;linode/lamp
所运行应用,如果本地没有会自动下载;/bin/bash
创建容器后运行的命令,这里是启动 Bash;
运行上面命令后会自动进入容器 Shel 环境,可以执行所需命令,用户身份为 root
。
启动容器内的 Apache、MySQL 服务,这时安装的 LAMP 网站环境已准备好,访问服务器 IP 测试。
service apache2 start service mysql start

可以访问就说明 OK 了,按网页提示完成数据库密码等安全措施,就可以上传网站程序,创建数据库建站了。退出容器使用 exit
命令,若要退出容器 Shell 而保持容器运行则使用 Ctrl+P+Q
组合键。
以上是 Docker 的基本用法介绍,如需了解更多相关知识,推荐这个 中文文档,整理的很详细。