环境:

CentOS 7.5

Docker 20.10.2

Docker-Compose 1.25.5

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) [root@localhost ~]# docker version # Docker版本
Client: Docker Engine - Community
Version: 20.10.2
API version: 1.41
Go version: go1.13.15
Git commit: 2291f61
Built: Mon Dec 28 16:17:48 2020
OS/Arch: linux/amd64
Context: default
Experimental: true Server: Docker Engine - Community
Engine:
Version: 20.10.2
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 8891c58
Built: Mon Dec 28 16:16:13 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.3
GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.19.0
GitCommit: de40ad0 [root@localhost ~]# docker-compose version # Docker-compose版本
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

复制

参考:  Docker-Compose官方搭建Wordpress教程:https://docs.docker.com/compose/wordpress/

1.下载项目(docker-compose.yml)

[root@localhost ~]# cd /home/
[root@localhost home]# mkdir my_wordpress
[root@localhost home]# cd my_wordpress/ [root@localhost my_wordpress]# vim docker-compose.yml
version: '3.3' #compose文件版本 services:
db: # 服务1:db
image: mysql:5.7 # 使用镜像 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: # 服务2:wordpress
depends_on: # wordpress服务启动时依赖db服务,所以会自动先启动db服务
- db
image: wordpress:latest # 使用镜像 wordpress:latest最新版
ports:
- "8000:80" #端口映射8000:80
restart: always
environment: # 环境
WORDPRESS_DB_HOST: db:3306 # wordpress连接db的3306端口
WORDPRESS_DB_USER: wordpress # wordpress的数据库用户为wordpress
WORDPRESS_DB_PASSWORD: wordpress # wordpress的数据库密码是wordpress
WORDPRESS_DB_NAME: wordpress # wordpress的数据库名字是wordpress
volumes:
db_data: {}

复制

说明:

 可以看到上面的docker-compose.yml文件中第一行为version:'3.3',这个是compose文件的版本,它是与docker引擎的版本相对应的,并且向下兼容。

2.启动项目

注意:大部分的compose命令都需要到docker-compose.yml文件所在的目录下才能执行。

前台启动项目: docker-compose up

 **后台执行该服务可以加上 *-d* 参数:** docker-compose up -d

 指定yml文件启动:docker-compose -f 【yml文件绝对路径】 up / -d

[root@localhost my_wordpress]# docker-compose up  -d  # 后台运行项目
Creating network "my_wordpress_default" with the default driver
-----》# 为wordpress项目创建my_wordpress_default网络
Creating volume "my_wordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
6ec7b7d162b2: Downloading [======================================> ] 20.64MB/27.1MB
fedd960d3481: Download complete
7ab947313861: Download complete
64f92f19e638: Downloading [=============================================> ] 1.278MB/1.419MB
3e80b17bff96: Download complete
014e976799f9: Waiting
59ae84fee1b3: Waiting
7d1da2a18e2e: Waiting
301a28b700b9: Waiting
529dc8dbeaf3: Waiting
bc9d021dc13f: Waiting
529dc8dbeaf3: Pull complete
bc9d021dc13f: Pull complete
Digest: sha256:c3a567d3e3ad8b05dfce401ed08f0f6bf3f3b64cc17694979d5f2e5d78e10173
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
6ec7b7d162b2: Already exists
db606474d60c: Pull complete
afb30f0cd8e0: Pull complete
3bb2e8051594: Pull complete
4c761b44e2cc: Pull complete
c2199db96575: Pull complete
1b9a9381eea8: Pull complete
50f0689715a3: Pull complete
8a6cc018dd45: Pull complete
052299cf2d76: Pull complete
ee83da709c88: Pull complete
5b10df91e6d0: Pull complete
a2eb858e27d8: Pull complete
e6269830d5ad: Pull complete
228a0fa8a95f: Pull complete
91f7abe86332: Pull complete
5c3d3e1e4145: Pull complete
e75d27a32f14: Pull complete
3c632295f58e: Pull complete
84352e306791: Pull complete
Digest: sha256:e3a851040e7eef9c2b6dd954bfcf08b5a9847b2efbc252d4ccb1b0864225d9fc
Status: Downloaded newer image for wordpress:latest
Creating my_wordpress_db_1 ... done
Creating my_wordpress_wordpress_1 ... done
Attaching to my_wordpress_db_1, my_wordpress_wordpress_1
db_1 | 2021-01-09 03:56:06+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.32-1debian10 started.
db_1 | 2021-01-09 03:56:06+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1 | 2021-01-09 03:56:06+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.32-1debian10 started.
db_1 | 2021-01-09 03:56:06+00:00 [Note] [Entrypoint]: Initializing database files
db_1 | 2021-01-09T03:56:06.498622Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1 | 2021-01-09T03:56:06.956978Z 0 [Warning] InnoDB: New log files created, LSN=45790
db_1 | 2021-01-09T03:56:06.992692Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
db_1 | 2021-01-09T03:56:07.053810Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 99ff1af4-522e-11eb-a33c-0242ac130002.
db_1 | 2021-01-09T03:56:07.054442Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
wordpress_1 | WordPress not found in /var/www/html - copying now...
wordpress_1 | Complete! WordPress has been successfully copied to /var/www/html
db_1 | 2021-01-09T03:56:07.578842Z 0 [Warning] CA certificate ca.pem is self signed.
wordpress_1 | [09-Jan-2021 03:56:07 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
...
db_1 | 2021-01-09T03:56:16.546749Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
db_1 | 2021-01-09T03:56:16.547255Z 0 [Warning] CA certificate ca.pem is self signed.
db_1 | 2021-01-09T03:56:16.547310Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
db_1 | 2021-01-09T03:56:16.547780Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
db_1 | 2021-01-09T03:56:16.547866Z 0 [Note] IPv6 is available.
db_1 | 2021-01-09T03:56:16.547878Z 0 [Note] - '::' resolves to '::';
db_1 | 2021-01-09T03:56:16.547892Z 0 [Note] Server socket created on IP: '::'.
db_1 | 2021-01-09T03:56:16.548648Z 0 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
db_1 | 2021-01-09T03:56:16.555145Z 0 [Note] Event Scheduler: Loaded 0 events
db_1 | 2021-01-09T03:56:16.555312Z 0 [Note] mysqld: ready for connections.
db_1 | Version: '5.7.32' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.19.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.19.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1 | [Sat Jan 09 03:56:16.984658 2021] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.4.14 configured -- resuming normal operations
wordpress_1 | [Sat Jan 09 03:56:16.984711 2021] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

复制

Docker网络(重要)

 可以看到在使用docker-compose管理项目的时候,docker-compose会自动给我们创建一个项目网络,这是docker-compose的网络默认规则,创建的项目网络可以方便我们管理维护项目,同一个项目的所有服务可以直接互相通过服务名访问!!!

 这样的一个好处是:开发不需要在配置中写死某个服务的IP地址,只需要写服务名即可,当该服务异常挂掉,同一个服务重启后IP可能会不同,如果写死的话就得去更改,很麻烦。所以这就是docker-compose默认创建网络提供的便利性。

[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
eb2d2ed62e6d bridge bridge local
40a2cdab761b host host local
addc87976b45 my_wordpress_default bridge local #项目网络
446393a43e7b none null local [root@localhost ~]# docker network inspect my_wordpress_default #查看项目网络详情
[
{
"Name": "my_wordpress_default",
"Id": "addc87976b4535cdb24c84a00afc9744b5951a520e7230bc8ef76189ea06bf05",
"Created": "2021-01-09T11:55:20.242710185+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"c95da3fa0f6c42a564d99b35f70e5c51c5a1163ab53b9a6ae305f98d6b2b6f9f": {
"Name": "my_wordpress_db_1",
"EndpointID": "e1a66aec2e36fb74d0d75af69ff6c74c20c06508bfe2d8c34384d45062007c25",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
},
"cccd067d18e46beb27a345721148569464ad618c1cfd99357fe4b80d75e7ff27": {
"Name": "my_wordpress_wordpress_1",
"EndpointID": "f238817ce5358d7b57a1668ea9ddda40c88a227c2c1d762fa553e38fd22d7e2b",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "my_wordpress",
"com.docker.compose.version": "1.25.5"
}
}
]

复制

3.访问

最新文章

  1. 《JavaScript权威指南》学习笔记 第四天 数组
  2. mysql输入密码后闪退怎么办?
  3. copyallwaterdata
  4. [java学习笔记]java语言基础概述之内存的划分&堆和栈
  5. 触摸与手势学习-swift
  6. RollPagerView的用法:
  7. SQL Server 和CLR集成
  8. ms sql 根据表名查询 表中所有字段的属性值 sql语句
  9. 终结者单身——setAccessible(true)
  10. EasyUI combox实现联动
  11. RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
  12. 第59章 IdentityServer交互服务 - Identity Server 4 中文文档(v1.0.0)
  13. BZOJ3110:[ZJOI2013]K大数查询(整体二分)
  14. 配置SQLServer,允许远程连接
  15. BZOJ3787 gty的文艺妹子序列 【树状数组】【分块】
  16. 【倍增】Tak and Hotels II @ABC044&ARC060/upcexam6463
  17. WDA基础六:字段,表等visiable,enable,read_only控制
  18. 1. 怎么设置可以使得虚拟机里面既可以访问主机也可以访问局域网而且是静态ip
  19. 在websocket中怎么样注入service类
  20. 【C/C++】标准IO操作

热门文章

  1. go语言 cmd执行命令,遇到空格或者双引号无法执行成功的解决方案
  2. Codeforces 1281E
  3. springboot项目的创建和兼容jsp和注解开发,详细有效(注解和配置两种)
  4. Launchpad是什么?Launchpad使用教程
  5. MeterSphere中dubbo接口测试分享
  6. VS2022在打开设计器的时候提示某变量未声明或者未赋值
  7. pg9.6使用索引
  8. CompletableFuture的thenCompose使用具体说明
  9. HTML&CSS学习总结
  10. 源码编译mariadb