[TOC]
2 docker 安装
2.1 docker 安装
如果详细划分的话、docker在Linux上的安装分为三种方式安装、其实他们都是源于rpm来进行安装。
- 第一种方式是通过脚本、官方会根据这个脚本来进行检测我们本机这么一个服务的平台,然后来匹配安装最适合于本机的版本。但是不适合用于生产环境中
- 第二种方式是通过yum来进行安装,也就是通过配置官方的yum源来进行安装 。
- 第三种方式是通过RPM包来进行安装。(最推荐的一种)
2.1.1 通过RPM安装docker
2.1.1.1 官方下载RPM包
RPM下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
ubuntu 系列地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
同时也要下载selinux记住上面docker下载的是什么版本我们的selinux就要下载相同的版本、两边要匹配
2.1.1.2 centos 7 上安装docker RPM版
运行docker的时候推荐使用centos7 以上的系统,如果是ubuntu的话就推荐使用16以上。
1、关闭防火墙
[19:58:10 root@docker ~]#systemctl stop firewalld
[19:58:12 root@docker ~]#systemctl disable firewalld
2、关闭selinux
[19:58:17 root@docker ~]#getenforce
Disabled
3、安装并启动iptables
原因:docker会利用防火墙进行一定的设置,所以我们最好先将防火墙服务进行安装并启动。
#安装并启动防火墙
yum install iptables -y;systemctl start iptables
#清空防火墙默认规则、然后再将防火墙规则保存,这样就是一个干净的防火墙
[20:05:57 root@docker ~]#iptables -F
[20:10:55 root@docker ~]#iptables-save > /etc/iptables.rules
4、更新操作系统软件包
[20:12:19 root@docker ~]#yum update -y
#重启操作系统让他使用我们最新的内核版本
[20:14:38 root@docker ~]#reboot
5、将我们下载的这两个RPM软件包上传至服务器中
#创建docker文件夹
[20:16:34 root@docker ~]#mkdir /docker
#将我们的docker安装包移动至docker文件中
[20:16:55 root@docker ~]#mv docker-ce-* /docker/
6、通过yum安装这两个docker RPM安装包
[20:18:36 root@docker ~]#cd /docker/
[20:18:41 root@docker docker]#yum install -y *
7、启动并设置为开机启动docker
[20:18:57 root@docker docker]#systemctl enable --now docker
2.2 docker 加速配置
我们下载镜像的时候有可能会导致下载失败、原因是docker镜像的下载地址是在国外。所以我们可以通过国内的一些例如 阿里云可以给我们提供docker 加速配置。
2.2.1 获取docker加速地址
首先我们需要登陆阿里源的docker官网,进去之后注册一个用户、得到一个docker加速的代码ID。
浏览器打开 http://cr.console.aliyun.com,注册或登录阿里云账号,点击左侧的镜像加速器,将会得到一个专属的加速地址,而且下面有使用配置说明:
2.2.2 生成配置文件:
1、在etc下创建一个docker目录
[20:44:02 root@docker docker]#sudo mkdir -p /etc/docker
2、在这个目录中创建一个docker的配置文件为daemon.json,再将阿里云的容器镜像地址添加进去
[20:42:01 root@docker docker]#sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hpqoo1ip.mirror.aliyuncs.com"]
}
EOF
3、重新加载系统服务、然后重启docker
[20:44:26 root@docker docker]#sudo systemctl daemon-reload
[20:44:31 root@docker docker]#sudo systemctl restart docker
4、输入docker info
会发现阿里的容器镜像已经添加
2.3 docker 化应用体验
上面我们已经安装和加速了docker应用、现在我们就来体验一下docker应用。
2.3.1 通过docker部署一个LNMP的环境
传统我们来构建一个wordpress 架构的话需要一个操作系统、然后再去部署nginx、MySQL、php。这些平台部署好了之后我们再去将代码放到默认的仓库下,然后在docker中我们只需几行代码即可。
传统的word press安装需要以下几个软件版本支持
1、下载wordpress数据库镜像
[20:48:36 root@docker docker]#docker pull wordpress
docker pull:拉取镜像
wordpress:镜像名
2、下载mariadb数据库镜像
[21:06:52 root@docker docker]#docker pull mariadb
docker pull:拉取镜像
mariadb:镜像名
3、通过docker images 查看到已经下载好了这两个镜像
[21:07:43 root@docker docker]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb latest 8075b7694a2d 3 days ago 407 MB
wordpress latest 04b52c96c4b6 5 days ago 543 MB
4、docker运行mariadb数据库服务
[21:08:59 root@docker docker]#docker run --name db --env MYSQL_ROOT_PASSWORD=123456 -d mariadb
docker run :表示从镜像运行为容器做。
--name db:然后给这个容器起一个名字叫做db。
--env 然后像这个容器中注入环境变量。环境变量的好处数据库在做初始化的时候,需要告诉他mysql的初始化密码为多少,而在这里我们可以通过指定环境变量的方式告诉他,我们现在的mysql初始化密码为多少。
MYSQL_ROOT_PASSWORD=123456 : 这个是数据库的初始化密码。
-d :放到后台运行,因为mysql是一个前台守护进程。
mariadb:数据库的服务是mariadb
5、docker 运行word press 博客服务
[21:10:03 root@docker docker]#docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress
docker run :表示从镜像运行为容器做。
--name MyWordPress:给容器起名为MyWordPress
--link:表示为链接关系
db:mysql:就是上面一条命令的db,然后mysql是他起的一个别名,他会向/etc/hosts文件里写一个解析记录,解析的值就是上一条命令中运行的容器地址,这样的话就可以通过别名来进行访问了
-p 8080:80:表示的是端口映射,因为他是基于我们容器级别的隔离所以他会有自己独立的网络空间,怎么外网才可以访问他呢,做我们的dnat(反向代理将自己的服务端口暴露出去供外网访问) 映射。
8080:表示本机的端口、80:表示容器的端口,也就是访问本机的8080端口就可以访问到容器的80端口。
-d :放到后台运行,因为mysql是一个前台守护进程。
word press:启动的是一个word press的容器
5、通过docker ps命令查看正在运行的镜像
[21:11:38 root@docker docker]#docker ps
6、测试http://10.0.0.117:8080/
通过访问我们docker 服务器上的8080端口word press已经部署好了
安装word press
登录word press