版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sitebus/article/details/87971321
安装docker及docker-compose
详细参考上一篇文章:通过docker在ubuntu上安装wordpress之一:安装docker
配置docker-compose 启动文件
该配置文件是关键,文件名为docker-compose.yml。如果文件名是别的名字,启动的时候需要用-f参数特别指定一下。建议文件名用这个默认的文件名。
配置文件请放在一个新建的空目录之下,比如/mywordpress,注意这个目录名将会默认成为docker的项目名。
(docker项目:一个项目可以包含多个的docker容器。docker容器是一个docker镜像的实例,比如mysql容器,Nginx容器,wordpress容器)
首先给出配置文件内容,后面详细解释每一项的目的和理由。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourrootpwd
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresspwd
web:
depends_on:
- db
image: wordpress:latest
volumes:
- ./web_data:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpresspwd
这里说明一下上面每一项的目的和设置理由。
项目 | 说明 |
---|---|
version | 配置文件的版本,默认为3. 也有3.1, 3.2. |
services | 服务:服务下面放置各个docker容器的配置。 |
db/web/… | 自定义的docker容器的名字 |
image | docker镜像指定。格式为[镜像名字:tag]. 容器就是镜像的实例,所以这个指定很关键。如果本地没有相应的镜像,会自动从docker.com的公共仓库去拉取。这一点强吧! |
volumes | 数据卷指定。可以指定多个。如果不指定可读写数据卷,docker一旦停止,用户数据也会随之消失。指定格式HOST_DIRECTORY:CONTAINER_DIRECTORY:ReadWriteOption 主机的目录应该设置为相对路径,不然docker可能找不到要映射的目录。默认的读写属性为可以读写。 |
ports | 端口映射。格式:HOST_PORTS:CONTAINER_PORTS。 mysql数据库访问默认端口为3306,web服务器默认访问端口为80,如果不指定的话,外面访问不了 |
restart | 指定容器退出后的重启策略,always为始终重启。生产环境中推荐配置为 always 或者 unless-stopped |
environment | 环境变量设置。这里设置的数据库用户名密码等,会自动反映到数据库中。注意不同服务(容器)之间的环境变量内容要匹配 |
启动docker并验证
进入到上面步骤生成配置文件所在的目录,并执行下面的命令,既可以启动wordpress.
docker-compose up -d
启动参数up :它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。链接的服务都将会被自动启动,除非已经处于运行状态。
-d:守护方式启动。 即后台方式启动各个容器。
这个时候,打开网页http://localhost/ 即可看到wordpress的语言选择界面。
下面再列举一些常用的compose命令
#查看compose版本
docker-compose version
#列出项目中目前的所有容器(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose ps
#停止当前的compose项目(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose stop
#重启动当前的compose项目(注意默认项目名是当前的目录名,需要先进入本目录)
docker-compose restart
#查看运行中的容器
docker container ls
补充说明:
docker-compose命令选项
-f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml ,可以多次指定。
-p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。