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文件来定义多个容器之间如何部署
安装
 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  vim docker-compose.yml   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  

看日志,会先拉取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,可以做适当了解

原文链接:https://blog.csdn.net/vcj1009784814/article/details/106313465?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168994674516800185897464%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168994674516800185897464&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-27-106313465-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享