Docker安装与使用之新手指南
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

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