Docker笔记 —— 容器编排与wordpress部署实践

什么是容器编排?

比如如下是一台宿主机,需要部署3个容器,Nginx服务,Tomcat服务,MySQL服务。其中Nginx给tomcat提供负载均衡和反向代理功能,Tomcat中运行JavaWeb程序,这个JavaWeb程序会依赖MySQL进行数据存取。这一组应用要上线,若手动处理的话,需要先启动一个容器跑MySQL服务,然后启动Tomcat容器,最后启动Nginx容器。并且需要手动对容器的配置文件进行设置,并配置容器之间的依赖关系,非常麻烦。而容器编排工具,则可以通过解析一个脚本文件,自动化地执行上述流程。我们只需要将容器部署需要的配置文件,容器之间的关系等,写在一个脚本里,剩下的事就可以由编排工具自动帮我们完成。

容器编排就是控制多个容器部署流程的一个过程。

image-20200523232525680

Docker Compose

Docker Compose是Docker官方提供的一种容器编排工具,它有如下特点

  1. 仅支持单机
  2. 通过yml文件来定义多个容器之间如何部署
安装
# 先安装docker-compose,下面使用国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

# 然后授予权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看是否正确安装
docker-compose -version

image-20200523234010907

docker-compose安装成功,下面开始部署wordpress进行实践

部署WordPress
# 在宿主机创建目录
mkdir wordpress
# 进入该目录
cd wordpress
# 创建yml文件
vim docker-compose.yml
# yml文件中填写如下信息,下面的信息在docker官方网站的教程上能够找到
# https://docs.docker.com/compose/wordpress/

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {
    
    }
    
# 运行
docker-compose up -d
# 会自动解析刚才创建的docker-compose.yml ,并且以后台进程形式运行

看日志,会先拉取mysql镜像

image-20200523234655814

随后,开始拉取wordpress镜像

image-20200523234724201

最后,会看到启动了2个容器

image-20200523234955343

此时,浏览器访问宿主机的8000端口,可以看到wordpress搭建成功

image-20200523235040146

docker network ls 命令,可以看到docker-compose自动为wordpress创建了一个网桥

image-20200524121414708

查看这个网桥的详细信息,可以看到wordpress的app和db两个容器都和这个网桥进行了绑定

image-20200524121521969

若要把wordpress这一组应用关掉,使用docker-compose down 即可。那如果用docker-compose启动了多组应用,直接使用docker-compose down,怎么知道是关掉哪一组应用呢?

答案是,使用docker-compose down时,要先切换到具有docker-compose.yml配置文件的目录下,它会根据当前目录下的docker-compose.yml文件,来确定需要关闭的是哪一组应用

image-20200524121753108

另 -> 可以使用docker-compose logs来查看应用的日志,不过,这样查看日志,会看到几个应用的日志混在一起,若要单独查看某个应用的日志,可以使用docker-compose logs 容器名称

一般,docker-compose在生产环境上的应用是比较少的,因为它只支持单机,不支持集群。所以,在生产环境下,一般会使用支持集群的容器编排工具,如kubernetes

另-> 现在还有一个容器化产品—— podman,和docker类似,甚至可以和docker命令进行无缝切换,但它没有采用cs架构,貌似在某些方面会优于docker,可以做适当了解

猜你喜欢

转载自blog.csdn.net/vcj1009784814/article/details/106313465