Docker安装与使用之新手指南

Kevin 教程 775 次浏览 抢沙发

Docker是近年流行的Linux容器管理工具,其在Linux内核资源分离机制上进行了优化整合,使得容器的创建和管理变的容易。实际使用最大好处是,可以为程序提供一致运行环境,避免因环境配置不同而引发问题,极大提高了部署与维护效率。较之传统虚拟机解决方案,容器具有低成本开销的优势。

对于普通用户来说,使用Docker可以帮助我们快速安装软件。以往Linux系统上如果软件仓库没有,通常要编译安装,麻烦不说还易遇到依赖项问题,Docker的出现可以很好解决这个问题。

Docker 安装

Docker区分社区版和商业版两种。后者包含了一些收费服务,支持周期更长。个人用户一般用不到,选择Docker CE(社区版)即可。

笔者平时习惯用CentOS,故这里只介绍CentOS安装步骤,其它系统可以参考官方教程,链接如下。

CentOS安装Docker要求系统版本最低CentOS 7(64位),并且没有禁用centos-extras(默认开启)。下面Docker安装假设操作用户为普通账号,若root用户则不用在命令前面加sudo

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库下载。在之后打印内容里有以下信息就表明运行正常,可以安装其它Docker镜像使用了。

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 头像显示,不会被公开可见。