安装Docker.v19和配置Docker Compose编排工具

博文目录

一、Compose简介

二、安装Docker

1、安装19.03.9版本Docker

2、配置镜像加速

三、安装使用Docker Compose

1b [ C } 2 [ u、Github下载Docker Compose

2、道云下载Docker Compose

四、编写.y- _ ~ j p W D D ]ml文件

1、.yml文件构建简单的Nginx服务

2、compose+dockerfile构建镜像

3、使用.yml文件搭{ ( , S R [ W q建博客平台

一、Compose简介

Compose是用于定义和运行多容器Docker应用程序的工具。通过ComposeT U : j Q,可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。

Docker-Compose是一个容器v t ` w h C编排工具。通过一个.yml或.yh K . @ G Iaml文件,将所有的容器的部署方法、文件映射、容器端口映射等情况写在一个配置文件里,执行docker-compose up命令就像执行脚本一样,一个一个的安装并部署容器。

YAML文件基本语法:

  • 大小写敏感;

  • 使用缩进表示层t Q b V级关系;

  • ? i % +进不允许使用tab,只允许空格;

  • 缩进的y g s 5空格数不重要,只要相同等级的元素左对齐即可;

  • “#”表示注释;

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器,例如一个 Web 服务容器再加上后端的数据b A N库服务容器等,如f ] n `下:

Docker Compose将所管理的容器分为三层:

  • 项目(project);

  • 服务(q * C U & } Uservice9 7 n);

  • 容器(container);

docker compose运行目录下的所有yml文件组成一个项目,一个项目包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务可包括多个容器实例。

docker-compose就是docker容器的编排工具,g [ j :主要就是解决相互有依赖关系的多个容器的管理。

二、安7 f - b i [ T | ]装DockD R . { U uer

务器为CentOS7.4;Docker版本K n Y . M -19.03.9

1、安装19.03.9版本Docker

[root@centos01 ~]t 0 2 u K# cd /etc/yum.reT w q o O D J ^pos.d/
[root@centos01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
<!--下载Centos7源,  j M % 6 R-->
[root@centos01 yum.repos.d]# curl https://download.docker.com/linux/centos/docker-cee c l 3 T s.repo -o /etc/yum.repos.d/docker.ce.repo
<!? 7 E D--下载最新版本docker源-->
[root@centos01 ~]# yum -y install docker-ce yum-utils device-mapper-persitent-data lvm2
<!--安装docker和docker-ce依赖程序--> q U ( ` g } f
[root@centos01 ~]# doc) X fker version      <!--查看docker版本-->
Client: Docker Engine - Community
Version:           19.03.9
API verQ P I a } qsion:       1.40
Go version:        go1.13.10
Git commit:        9d988398e7
Built:             Fri May 15 00:25Z B L d G 0 ~ . h:27 2020
OS/ArU : C G m g , _ch:           linux/amd64
Experimental:      false
Server: Docker Engine - Com) - b ; ? T q n munity
Engine:
Version:          19.03.9
AN j o zPI version:      1.40 (minimum version 1.12)
Go version:) E ;       go1.13.10
Git commit:       9d988398e7
Built:            Fri May 15 00:24:05 2020
OS/Arch:          linux/amd64
[rootk a L ` E 5@centos01 ~]# sys[ ; 3 } v N temctl start docker     <!--启动docker服务O i T e . Q l )-->
[root@centos01 ~]# systemct= f . 4 Ml enable docker     <!--设置开机自动启动-->

2、配置镜像加速

接下来启用道云提供的下载镜像加速功能(阿里也提供了该功能k I [ I l s : D 2,我这里就写道云了)。
道云加速器网址:https://www.daocloud.io/
流程如下:

1)访问道云的官网;

2)注册用户并且登录;

前两步完成后,请看图操作:
安装Docker.v19和配置Docker Compose编排工具

看到以下界面后,往下拖页面:
安装Docker.v19和配置Docker Compose编排工具

拖到此处,根据自己系统版本,E d 4 (复制相应的命令(基于Linux服务器就复制下面这行):

[root@centos01 ~]# curl -sSL https://get.I j $ E [daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io      <!--粘贴刚才复制的命- T n令-->
docker version >= 1.12[ ) V ?
{4 0 7"registry-(  - ! 0 qmirrors": ["http://f1361db2.m.daocloud.io"]}
Success.
You need to restart docker to take effect: sudo systemct~ w r ~  ? 1 Al restart docker
[root@centos01 ~]# cat /etc/docker/daemon.json      <!--查看加速是否配置成功-->
{"registry-c G m ) p l i s ymirrors": ["htb q 8 % 6 ; 6tp://f1361db2.m.daocloud.io; - - } U * S 6 b"]}
[root@cq J Aentos01 ~]#q x @ D X ] systemctl restart docker       <!--重新启动docker服务-->

三、安装使用Docker CompV G x Y % ] pose

1、Github下载Docker Cp S m j % )ompose

若想使用compose这个容器编排工具,那么,必须是基于docker这个服务,然后下S U % o J载d& / x H r J sockeN P 6 ? br-compose这个命F % _ [ q e x b令,我们可以去github官方网站搜索“docker Com) / ` G )pose”,O 5 l l ! N q p X如下:
安装Docker.v19和配置Docker Compose编排工具

安装Docker.v19和配置Docker Compose编排工具

安装Docker.v19和配置Docker Compose编排工具

安装Docker.v19和配置Docker Compose编排工具

下载compol s %se工具时,需先查看本机的docker版本!

[root@centos01 ~]# docker -v
Docker version 19.03.9, build 9d988398e7

如果docker版本过低,C ] s 1 n L可以自行查找其他版本的docker-compose工具。选择合适的版本之后,执行在github网站上找到的命令。

[root@centos01 ~N w S : | g 7  _]#curl -L ht/ ( { 9 H l ] 3 rtps://github.co= & B fm/docker/compose/releases/download/1.25.4/docB ) ] S , : T 8 !ker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@centos01 ~]#chmod +x /usr/local/bin/docker-compose

2、道k O # | 4 b N n云下载Docker Compose

如果网速不佳下载失败可以选择一下方式下载:(个人比较推荐一下方式下载)

首先我们访问道云官网 去道云官网下载,如下:
安装Docker.v19和配置Docker Compose编排工具

安装Docker.v19和配置Docker Compose编排工具

[root@centos01q  T C ~]# cu} y ? v a t o Xrl -L h9 N h p c #ttps://get.daocloud.io/docker/compose/s f g u = u ~releases/download/1.25.5/docker-C ; & = Gcompose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
&- A U xlt;!--粘贴刚才复制的命令下载Docker Compose-->
[root@centos01 ~]# docker-compose -v           &6 , V Jlt;!--查看Dn h y j )ocker Compose版本-->
docker-compose version 1.25.5, buy  2ild 8a1c60f6

可以通3 : r N /过修改URL中的版本,可以自定义您的需要的版本。执行上面的两条命令后,我们就可以使用docker-compose这个编 & - | g ^ y排工具了。

四、编写.yml文件

1、.yml文件构建简单的Nginx服务

[root@centos01 ~]# vim /root/.vimrc
set tabstop=2
[root@5 V y K  6 1 r Fcentos01 ~]# source /root/.vimrc3 U } - l
<& $ j P Y z @!--由于tab键使用的较多,所以事先设置了一个tab键代表两个空格数-+ d p-H - M>
[root@centos01 ~]# mkdir docker_C C B r Qcompose
<!--创建一个测试目录,用于存放doN # ^ A { ccker-compose.yml文件--&j n C E ` Sgt;B V m E   5 9 K
[root@centos01 ~]# cd docker_compose/    <!--进r % H入刚常见的目录-->
<!--N f / V ) h建议一个目录下只有一个docker-compo. . G 5 h ` nse.yml文件-->
[root@centos01 docker_compose]# vim docker-compose.yml
<!-T 3 A d _ a V p-编写一个docker-compose.yml文件-->
version: "3e B z W b k #"                           <!--compose的版本-->6 - w _ i L [  e
services:                              <!--定义服务-->
nginx:
container_name: nginx           &l= @ 2t;!--运行的容- u % M器名-->
image: nginx:latest                                  <| * ? . D B r O 1!--使用的镜像E u b U ; [ k Z }-->
restart: always                                <!--随docker服务的启动而启动-->
ports:
- 80:80                                         <!--映射的端口-->
volumes:
- /root/compose_test/webse& A ; ? ;rver:/usr/share/nginx/html
<!--本地与容器挂载的目录-->
<!--编写: J v文件注意缩进-->
[root@centos01 docker_composem V  ) y `]# docker-compose up -d
<D % h u [ b Q 5 W!--使用当O ^ ` 3 v R * l L前目录下的docker-compose.yml文件生成相应的容器c | D e P-->
<!--“-d”选项,表示后台运行,f W 3 2 / ?如果不指定,默认则在前台运行,会占用终端-->
[root@centos01 docker_compose]# docker ps          <!--查看运行的容器-->
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
a4d71936dd12        nginx:latest        "nginx -g 'daemon of…"   46 seconds ago      Up 45 secondsn 2 p ! O y [       0.0.0.0:80->o d u 480/tcp   nginx
[root@centos01 docker_compose]# echm z V # N ~ 0 ko "www.do? E + & h !cker-compose.coc M L &m" > webserver/index.html
<!--创建测试网页-->
[root@centos01 docker_compose]# curl http://192.168.100.10  <!--访问测试-->
www.dock N |ker-compose.com
[root@centos01 docker_N ; w ^ 8 -compose]# docker-compose stop  <!--通过.yml文件停止文件中指定的容器-->
Stopping nginx ... done
[root@centos01 docker_compose]# docker ps  <!--查看容器是否停止-->u y ` c U 0 L ]
CO3 0 5  7 `NTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@centosl r e ` V 0 * J ~01 ~]# docker-compose -f docker_e # o  } M ^ [compose/docker-compose.yml3 4 $ o S x i 8 m up -d
<!--可以使用“-f”选项来指定yml文件启动文件中定义的容器-->

2、compose+dockerfile构建Z F r 3 n ] h ) _镜像

[root@centos01 ~]# mkdir composeB X Z d &, m 1 p ^ 5& cd compose  <!--创建, p & D )一个测试目录并M ~ ( w= b O * O % z, z c D g = + $-->
[root@centos01 compo1 g Vse]# vim Dockerfile      <!--创建dockerfile-->
FROM nginx:latest          <!--基础镜像-->
ADD html /usr/share/nginx/html
[root@centos01 compose]# vim docker^ A Q-compose.yml        <!--编写yml文件-->
version: '3G g x'
serviceY d c a ~ *s:
nginx:
build: .              <!--这里指定dockerfile的路径,可以写相对路径或绝对路径-->
contay v + / L ~iner_name: nginx001   <!--生成的容器名称-->
image: nginx001           <!--使用dockerfile生成的镜像名称-->
restartb  C H O |: always           <!--随docker服务v / V N J T Y的启动而启动-->
ports:
- 8080:80             <!--映射的端口-->
[root@centos01 compose]# mkdir html       <!--创建网站根目录-->
[root@ceO  r % wntos01 co3 ` H ; smpose]# echo "www.nginx.8080.com" >g k ^ D ; } n i ?; htI ] w S 3 b Q , WmL z ,l/index.htmF M 3 ,l  &+ E D b U ^ 1lt;!--写入主页测试内容-->
[root@cent1 f D n : O c | Kos01 compose]# docker-compose up -d            <!--生成容器-->
[root@centos01 compose]# doc~ c $ !ker ps           <!--查看容器-->
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
1428cd1ab7de        nginx001 J s   F            "nginx -g 'daemon o] Z `f…"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   nginx001
a4d71936dd12        nginx:latest        "nginx -g 'daemon of…r $ c & R g t p"   18 minutes ago       Up 15 minutes       0.0.0.0:7 u 8 6 [ A K Y E8X c - I p * # :0->80/tcp     nginx
[ u 5 I s a } droot@centos01 compose]# docker image$ e 9 t D Q [ $s         <!--查看镜像-->
REPOa + - bSITORY          TAG                 IMAGE ID            CREATED              SIZE
nginx001            latest              55b8bd0a4a59        About a minute ago   127MB
nginx               latest              9beeba249f3e        5 days ago           127MB
[root@centos@ 4 Y 201 cy 5 E d M Dompo= m sse]# curl http://192.168.100.10:8A a ( e p X W w 7080     <!--访问测试-->
www.nginx.8080.com
[root@centos01 compose]# docker-compose stop       <!--停止容器-->
Stopping nginx001 ... donI K U R E I Be
[root@centos01 ~]# docker-compose -f compose/docker-compose.yml up -d
<!--通过-f指定.yml文件来运行容器-->
Starting nginx001 ... done 

3、使用.yml文件f m P I 4 1搭建博客平台

[root@centos01 ~]# mkdir wordpress &&q c V N . cd wordpress  <!--创建测试目录-->
[root@centos01y W 7 : X T : : T wordpress]# vim docker-compose.yml   <!--编写yml文件--&d q :gt;N z 1
version: '3.1'
services:
wordpress:
image: wordpress           <!--指定使用的镜像-->
restart: always
ports:
- 1111:80        <!--指n N 2 P v定映射的端口-->
env d Bironment:             <!--修改容器内部的环境变量-->
WORDPRESSI 5 [ T $_DB_HOST:2 r e z w mym H J ] I 4sql
WORDPRESS_DB_USEq l bR: wordpress
WORDPRESS_DB_PASSWORD: pwd@123
WORDPRESS_DB_NAME: wordp0 l a g #ress
mysql:
image: mysql:5.6
restart: always
command: --character-sei F /t-server=utf8   <!--支持中文-->
environment:
MYSQL_ROOT_PASSWORD: pwd@123  <!--X B  @ root访问数据库密码-->
MYSQL_DATA) N F @ w + 6 `BASE: wordpress         <!--创建wordpress数据库-->
MYSQL_USER: wordpress            <!--用户名字-->
MYSQL_PO n L u w v TASSWORD: pwd@123         <!--用户访问密码-->
[root@j B L Z g F p centos01 wordpress]# docker-composZ N w 4 v Ze up -d <!--生成相应的容器,并在后台运行-->
[root@centoc y Z T 1 us01 wordpress]# docker ps    <!-- 查M ` ^ j看运行的容器-->
CONTAINER ID        IMAGE               COMMAND                  CREATED             ST8 p 7 }ATUS              PORTS                  NAMES
a93858ade399        wordpress           "docker-entrypoint.s…"   28 seconds{ } . _ { g $ ago      Up 27 seconds       0.0.0.0:1111->80/tcp   wordpress_wordpress_1
cec94e3bd0ee        mysql:5.6           "docker-eL ( & r Kntrypoint.s…"   28 seconds ago      Up 27 seconds       3G - F 7 O306/tcp               wordpress_mysql_1
[root@centos01 wordpress]X d + % g# docker images    <!-K E l 8 |-查看镜像V W d L }-->
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.6                 9e4a20b3bbbc        10 hours ago        302MB
wordpress           latest              675af3ca3193        5 day6 ^ C x 3 *s ago          5k 2 / Z x v # t O40MB
[root@centos01 wordpress]# netsr M ! c Rtat -anptu |grep9 9 ; 6 5 N h t L 1111   <!--确定1111端口在监听-->
tcp6       0      0 :::1111                 :::*                    LISTEN      119795/docker-proxy
[root@centos01 wordpr[ 0 , S w - l W sess]# echo "net.ipv4.ip_forward = 1" >> /etc/sysc+ s * r w [ btl.conf
<!--开启路由功能-->
[root1 z f Z d L  W@centos01 wordpress]# sysctl -p  <!--刷新配置-->
net.ipv4.? S G Bip_forward = 1

客户端访问http://192.168.100.10:1111

设置基础信息} ] ;
安装Docker.v19和配置Docker Compose编排工具

安装完成,登录:
安装Docker.v19和配置Docker Compose编排工具

输入用户名密码:
安装Docker.v19和配置Docker Compose编排工具

修改字体为简体中文:
安装Docker.v19和配置Docker Compose编排工具

——————————本文到此结束v ] L # r 1 | )感谢观看——————————