Docker 安装与使用(新手入门篇)

Eric 教程 168 次浏览 抢沙发

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
LAMP 运行容器

可以访问就说明 OK 了,按网页提示完成数据库密码等安全措施,就可以上传网站程序,创建数据库建站了。退出容器使用 exit 命令,若要退出容器 Shell 而保持容器运行则使用 Ctrl+P+Q 组合键。

以上是 Docker 的基本用法介绍,如需了解更多相关知识,推荐这个 中文文档,整理的很详细。

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。