把运行应用需要的一些服务在一个文件里面写清楚,然后基于这个文件去创建应用需要的这些服务。这里我们要用的是 Docker Compose ..
先去创建一个目录 .. 进入到桌面上 .. 创建一个目录,名字叫 toview ,这个是我们要做的一个网站应用的名字 .. 进入到这个目录的下面 .. 再用编辑器打开这个目录 .. 我用的是 VSCode 编辑器 ..
打开以后在资源管理器这里创建一个 compose 文件 ... 默认这个文件的名字是 docker-compose.yml ..
在这个文件里面先说明一下要用的 docker compose 版本 .. version 是 3 ...
然后用一个 services .. 它的下面是应用需要的一些服务 ..
wordpress 服务
添加一个叫 wordpress 的服务 .. 这个使用的 image ,就是镜像,是 wordpress .. 可以加上具体的版本 .. 比如 5.0.2
然后把服务的 restart ... 设置成 always ...
再添加一个 ports .. 配置一下公开的端口号 ... 让 8080 对应容器里的 80 端口 ... 这样在主机上访问 8080 端口的时候,对应得到的就是容器里的在 80 端口运行的服务 ...
然后是 enviroment .. 设置一下一些环境变量 .. 不同的镜像里面都有一些可以配置的环境变量 .. wordpress 这个镜像里面 .. 有一个 WORDPRESS_DB_HOST ,表示 WordPress 使用的数据库的主机 .. 这里设置成 db ... 一会儿我们在这个文件里再去定义一个 db 这个数据库服务 ..
再添加一个 WORDPRESS_DB_USER ... 数据库的用户名 ... 可以设置成 toview ..
还有 WORDPRESS_DB_PASSWORD .. 数据库用户对应的密码 .. 这里先留空 .. 等会儿再设置一下 ..
WORDPRESS_DB_NAME .. 数据库的名字.. 可以是 toview ..
下面再设置一下这个 wordpress 服务的数据卷 .. 先添加一个 volumes .. 下面是一个数据卷 .. 当前目录下的 app 下面的 wp-content .. 对应的是容器里的 /var/www/html/wp-content ..
wp-content 这个目录里面存储的是 WordPress 里面的一些资源,比如主题 ... 插件 .. 还有上传的文件等等 ...
db 服务
然后再去定义一个新的服务叫 db ... 它是 wordpress 需要的数据库服务 .. 这个服务用的 image 是 mysql .. 版本可以是 5.7 ..
restart .. 重启 .. 设置成 always ..
再设置一下服务的环境变量 .. enviroment ... mysql 这个镜像里面有一个 MYSQL_DATABASE .. 添加一个数据库,叫 toview ..
MYSQL_USER .. 数据库用户名 ... 也可以是 toview ..
MYSQL_PASSWORD .. 数据库用户的密码 ... 暂时先留空 ..
MYSQL_ROOT_PASSWORD .. 数据库里的 root 用户的密码 ... 暂时也先留空 ..
下面设置的是 volumes .. 当前目录下的 app 下面的 db .. 对应的是容器里的 /var/lib/mysql
密码
回到终端 .. 生成一个随机的密码 .. 执行一下 openssl rand -base64 32 ..
复制一小块 .. 让它作为 WORDPRESS_DB_PASSWORD .. WORDPRESS 使用的数据库的密码 ... 这个密码也是 db 服务里的 MYSQL_PASSWORD ..
回来再复制一块 ... 用它作为 db 服务的 Root 用户的密码 ... 粘贴到 MYSQL_ROOT_PASSWORD ..
依赖
服务之间可以设置一个依赖 .. 在这个 wordpress 服务里面,添加一个 depends_on ... 让它依赖下面这个 db 服务 ...
运行
这样我们就定义好了 WordPress 应用需要的两个服务 ... wordpress .. 还有 db ..