Docker:单机编排工具docker-compose [十二]

一、docker-compose的安装

1、安装

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y python2-pip
pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple docker-compose

2、检查是否安装成功

docker-compose -v

二、docker-compose案例

1、撰写docker-compose.yml文件

[root@luoahong mywordpress]# pwd
/opt/mywordpress
[root@luoahong mywordpress]# ll
total 4
-rw-r--r-- 1 root root 603 Jan 18 10:51 docker-compose.yml
[root@luoahong mywordpress]# cat docker-compose.yml 
version: '3'
services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestvolumes:- web_data:/var/www/htmlports:- "80"restart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpress
volumes:db_data:web_data:

2、启动容器

[root@luoahong mywordpress]# docker-compose up -d
Starting mywordpress_db_1 ... done
Starting mywordpress_wordpress_1 ... done
[root@luoahong mywordpress]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                   NAMES
7fdb12738746        wordpress:latest    "docker-entrypoint.s…"   5 minutes ago       Up 11 seconds              0.0.0.0:32769->80/tcp   mywordpress_wordpress_1
72e1954332dc        mysql:5.7           "docker-entrypoint.s…"   5 minutes ago       Up 12 seconds              3306/tcp, 33060/tcp     mywordpress_db_1
f82cd0895416        centos:6.9          "/bin/bash"              2 days ago          Exited (255) 2 hours ago   0.0.0.0:80->80/tcp      gifted_swirles

3、容器启动了什么网络

[root@luoahong mywordpress]# docker network ls
NETWORK ID          NAME                  DRIVER              SCOPE
d766f2526542        bridge                bridge              local
30b37ec09ff2        host                  host                local
ad2616372f01        mywordpress_default   bridge              local
03062097926d        none                  null                local

4、容器启动了什么数据卷

[root@luoahong mywordpress]# docker volume ls
DRIVER              VOLUME NAME
local               mywordpress_db_data
local               mywordpress_web_data

5、动态增加容器

[root@luoahong mywordpress]# docker-compose scale wordpress=3
WARNING: The scale command is deprecated. Use the up command with the --scale flag instead.
Starting mywordpress_wordpress_1 ... done
Creating mywordpress_wordpress_2 ... done
Creating mywordpress_wordpress_3 ... done
[root@luoahong mywordpress]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                   NAMES
dc0548d44d4f        wordpress:latest    "docker-entrypoint.s…"   10 seconds ago      Up 6 seconds               0.0.0.0:32771->80/tcp   mywordpress_wordpress_3
2ca0fa1916be        wordpress:latest    "docker-entrypoint.s…"   10 seconds ago      Up 6 seconds               0.0.0.0:32770->80/tcp   mywordpress_wordpress_2
7fdb12738746        wordpress:latest    "docker-entrypoint.s…"   6 minutes ago       Up About a minute          0.0.0.0:32769->80/tcp   mywordpress_wordpress_1
72e1954332dc        mysql:5.7           "docker-entrypoint.s…"   6 minutes ago       Up About a minute          3306/tcp, 33060/tcp     mywordpress_db_1
f82cd0895416        centos:6.9          "/bin/bash"              2 days ago          Exited (255) 2 hours ago   0.0.0.0:80->80/tcp      gifted_swirles

6、测试截图

 

 三、docker-compose.yml文件详解

1、全文注解

version: '3'
services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: always   #容器重启服务跟着自动重启environment:   #容器的环境变量MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:  #依赖db服务- dbimage: wordpress:latestvolumes:      #创建数据圈- web_data:/var/www/html    ports:- "80"restart: alwaysenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpress
volumes:db_data:web_data:

2、restart: always的作用

[root@oldboy ~]# docker run -d -p 5000:5000 --restart=always  -v /opt/myregistry:/var/lib/registry  registry
Unable to find image 'registry:latest' locally
latest: Pulling from library/registry
[root@luoahong2 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
64842c29c697        registry            "/entrypoint.sh /etc…"   28 minutes ago      Up 28 minutes       0.0.0.0:5000->5000/tcp   heuristic_montalcini
[root@luoahong2 ~]# systemctl restart docker
[root@luoahong2 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
64842c29c697        registry            "/entrypoint.sh /etc…"   29 minutes ago      Up 4 seconds        0.0.0.0:5000->5000/tcp   heuristic_montalcini
[root@luoahong2 ~]# systemctl restart docker
[root@luoahong2 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
64842c29c697        registry            "/entrypoint.sh /etc…"   29 minutes ago      Up 1 second         0.0.0.0:5000->5000/tcp   heuristic_montalcini

容器重启服务跟着自动重启

四、容器负载均衡搭建测试

1、编写测试文件

root@luoahong mywordpress]# docker volume ls
DRIVER              VOLUME NAME
local               mywordpress_db_data
local               mywordpress_web_data
[root@luoahong mywordpress]# cd /var/lib/docker/volumes/mywordpress_web_data/_data/
[root@luoahong _data]# ll
total 196
-rw-r--r--  1 33 33   418 Sep 25  2013 index.php
-rw-r--r--  1 33 33 19935 Jan  7  2018 license.txt
-rw-r--r--  1 33 33  7415 Mar 19  2018 readme.html
-rw-r--r--  1 33 33  6878 Dec 13 09:30 wp-activate.php
drwxr-xr-x  9 33 33  4096 Dec 20 07:23 wp-admin
-rw-r--r--  1 33 33   364 Dec 19  2015 wp-blog-header.php
-rw-r--r--  1 33 33  1889 May  3  2018 wp-comments-post.php
-rw-r--r--  1 33 33  3154 Jan 18 11:21 wp-config.php
-rw-r--r--  1 33 33  2764 Jan 18 11:21 wp-config-sample.php
drwxr-xr-x  4 33 33    52 Dec 20 07:23 wp-content
-rw-r--r--  1 33 33  3669 Aug 20  2017 wp-cron.php
drwxr-xr-x 19 33 33  8192 Dec 20 07:23 wp-includes
-rw-r--r--  1 33 33  2422 Nov 21  2016 wp-links-opml.php
-rw-r--r--  1 33 33  3306 Aug 22  2017 wp-load.php
-rw-r--r--  1 33 33 37296 Dec 13 08:28 wp-login.php
-rw-r--r--  1 33 33  8048 Jan 11  2017 wp-mail.php
-rw-r--r--  1 33 33 17421 Oct 23 15:04 wp-settings.php
-rw-r--r--  1 33 33 30091 Apr 30  2018 wp-signup.php
-rw-r--r--  1 33 33  4620 Oct 24  2017 wp-trackback.php
-rw-r--r--  1 33 33  3065 Sep  1  2016 xmlrpc.php
[root@luoahong _data]# pwd
/var/lib/docker/volumes/mywordpress_web_data/_data
[root@luoahong _data]# oot@luoahong _data]# vim info.php
▽
<?php phpinfo(); ?>

2、部署nginx

[root@luoahong2 ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Retrieving http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
warning: /var/tmp/rpm-tmp.CgAfYa: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...1:nginx-release-centos-7-0.el7.ngx ################################# [100%]
[root@luoahong2 ~]# yum install nginx -y

3、配置nginx文件

[root@luoahong2 ~]# cat /etc/nginx/nginx.conf 
user  nginx;
worker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;
upstream wordpress{server 192.168.231.136:32769;server 192.168.231.136:32770;server 192.168.231.136:32771;
}server{listen		80;server_name	localhost;location / {
proxy_pass 	http://wordpress;
proxy_set_header	Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;}}
}[root@luoahong2 ~]# systemctl restart nginx.service 
[root@luoahong2 ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18726/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1163/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      1163/sshd           
tcp6       0      0 :::5000                 :::*                    LISTEN      18307/docker-proxy  
udp        0      0 0.0.0.0:68              0.0.0.0:*                           15813/dhclient      
udp        0      0 0.0.0.0:38159           0.0.0.0:*                           15813/dhclient      
udp        0      0 127.0.0.1:323           0.0.0.0:*                           615/chronyd         
udp6       0      0 :::26916                :::*                                15813/dhclient      
udp6       0      0 ::1:323                 :::*                                615/chronyd       

4、容器负载均衡测试截图

 

转载于:https://www.cnblogs.com/luoahong/p/10288689.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML DOM文档对象查找元素的方法

一、HTML DOM 节点 在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点: 文档是一个文档节点。所有的HTML元素都是元素节点。所有 HTML 属性都是属性节点。文本插入到 HTML 元素是文本节点。注释是注释节点。 二、Document 对象 当浏览器载入 HTML 文档, 它就会…

快速排序(C语言)

快速排序 快速排序是一种不稳定排序&#xff0c;它的时间复杂度为O(nlgn)&#xff0c;最坏情况为O(n2)&#xff1b;空间复杂度为O(nlgn)。 这种排序方式是对于冒泡排序的一种改进&#xff0c;它采用分治模式&#xff0c;将一趟排序的数据分割成独立的两部分&#xff0c;其中一…

Apache配置多个监听端口和访问网站的方法

一个apache服务器的vhost.conf配置文件可以设置Apache监听多个端口&#xff0c;打开Apache的配置文件httpd.conf&#xff0c;在 Listen 80 下面添加多个监听端口如&#xff1a; Listen 8010 Listen 8020 Listen 8030 这样就在vhosts.conf配置文件中增加了8010、8020和8030端…

图的邻接矩阵(C语言)

邻接矩阵 无向图和有向图在邻接矩阵中的表示方法&#xff1a; 无向图和有向图大同小异&#xff0c;在这里只以无向图为例&#xff0c;代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 #define MaxVertices 100 //定义最大容量 typedef struct{ //包含权的邻…

MySQL安装成功后dos命令行设置密码

我在windows7上安装好MySQL数据库后&#xff0c;添加了MySQL的安装目录D:\wamp\MySQL\bin;到环境变量中&#xff0c;这样就可以在任何目录下使用mysql。为了安全性考虑&#xff0c;需要设置MySQL数据库的密码。通过dos命令行设置的方式如下&#xff1a; 一、进入dos命令行 按…

图的邻接表表示法(C语言)

邻接表 邻接表数据结构类型如下&#xff1a; #define MaxVertices 100 typedef struct node{ //边表 int adjvex;node* next; }EdgeNode; typedef struct{ //顶点表 int vertex; EdgeNode* edgenext; }VertexNode; typedef VertexNode AdjList[MaxVertices];//…

最小生成树构造算法--Prim算法,Kruskal算法(C语言)

最小生成树 最小生成树&#xff08;minimum spanning tree&#xff09;是由n个顶点&#xff0c;n-1条边&#xff0c;将一个连通图连接起来&#xff0c;且使权值最小的结构。 最小生成树可以用Prim&#xff08;普里姆&#xff09;算法或kruskal&#xff08;克鲁斯卡尔&#xff…

屏蔽烦人的百度搜索热点

开发时&#xff0c;在百度上搜索一些资料时&#xff0c;总是不经意看到百度搜索热点的一些新闻&#xff0c;然后经不住诱惑的标题就不经意间点了进去&#xff0c;然后就是连锁反应了。。等再次回到开发时已经是半小时之后的事了。又要把想要的东西重新捋一遍&#xff0c;导致开…

矩阵在竞赛中的应用

矩阵乘法代码&#xff1a; struct matrix {int n, m;int a[100][100]; }; // A.m B.n matrix matrix_mul(matrix A, matrix B) {matrix C;C.n A.n;C.m B.m;for (int i 0; i < A.n; i) {for (int j 0; j < B.m; j) {C.a[i][j] 0;for (int k 0; k < A.m; k) {C.a…

连通图遍历策略之广度优先搜索(C语言)

广度优先搜素&#xff08;BFS&#xff09; 广度优先搜索(又称宽度优先搜索)算法是最简便的图的搜索算法之一&#xff0c;该算法属于一种盲目搜寻法&#xff0c;目的是系统地展开并检查图中的所有节点&#xff0c;以找寻结果。换句话说&#xff0c;它并不考虑结果的可能位置&am…

多条件组合查询

一、效果图 二、前端代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>Jquery分类</title> <script src"http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></sc…

“三次握手,四次挥手”你真的懂吗?

记得刚毕业找工作面试的时候&#xff0c;经常会被问到&#xff1a;你知道“3次握手&#xff0c;4次挥手”吗&#xff1f;这时候我会“胸有成竹”地“背诵”前期准备好的“答案”&#xff0c;第一次怎么怎么&#xff0c;第二次……答完就没有下文了&#xff0c;面试官貌似也没有…

连通图遍历策略之深度优先搜索(C语言)

深度优先搜素&#xff08;DFS&#xff09; 深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中&#xff0c;当一个超链被选择后&#xff0c;被链接的HTML文件将执行深度优先搜索&#…

单源最短路径之迪杰斯特拉算法(C语言)

Dijkstra&#xff08;迪杰斯特拉&#xff09;算法 采用广度优先搜索思想&#xff0c;对有向赋权图寻找最短路径。 该算法对于不含负权的有向图来说&#xff0c;是目前已知的最快的单源最短路径算法。 时间复杂度&#xff1a;O&#xff08;n^2&#xff09; 基本原理&#xf…

Mybatis主线流程源码解析

Mybatis的基础使用以及与Spring的相关集成在官方文档都写的非常详细&#xff0c;但无论我们采用xml还是注解方式在使用的过程中经常会出现各种奇怪的问题&#xff0c;需要花费大量的时间解决。 抽空了解一下Mybatis的相关源码还是很有必要。 先来看一个简单的Demo&#xff1a; …

动态规划之背包问题(C语言)

动态规划 动态规划&#xff08;英语&#xff1a;Dynamic programming&#xff0c;简称DP&#xff09;是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题 动态规划思想大致上为&#xff1a;若要解一…

最大子列和问题(JAVA)

最大子列和 问题描述&#xff1a;给定N个整数的序列{A1&#xff0c;A2&#xff0c;A3&#xff0c;…&#xff0c;An}&#xff0c;求解子列和中最大的值。 这里我们给出{-2&#xff0c;11&#xff0c;-4&#xff0c;13&#xff0c;-5&#xff0c;-2}这样一个序列&#xff0c;正…

密码验证

用户在创建一个账户时&#xff0c;需要设置一个密码。密码的复杂程度是安全的保障之一&#xff0c;但是有些用户在设置密码时&#xff0c;总是把密码设置的过于简单&#xff0c;导致用户账户的安全存在威胁。因此&#xff0c;为了提高用户账户的安全性&#xff0c;添加了一个Ja…

阿里云windows/Linux 服务器建站教程,附WordPress配置方法

声明&#xff1a;文章仅供学习使用&#xff0c;故采用了多处链接&#xff0c;如有侵权&#xff0c;请私信我&#xff0c;立删。 最近看到一个学长做的验证界面&#xff0c;很简单的两个文本输入框&#xff0c;但是能给我们群里的小伙伴们做题提供一个验证答案的途径&#xff0…

Maven修改默认仓库为阿里云仓库

Maven 仓库默认在国外&#xff0c; 国内使用难免很慢&#xff0c;我们可以更换为阿里云的仓库。 第一步:修改 maven 根目录下的 conf 文件夹中的 setting.xml 文件&#xff0c;在 mirrors 节点上&#xff0c;添加内容如下&#xff1a; <mirrors><mirror><id>…