编写 docker-compose 文件
在当前目录下创建 docker-compose.yml
并复制下面的配置。
version: '3.1'
services:
wallabag:
image: wallabag/wallabag
ports:
- 80:80
environment:
MYSQL_ROOT_PASSWORD: root
SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql
SYMFONY__ENV__DATABASE_HOST: mysql
SYMFONY__ENV__DATABASE_PORT: 3306
SYMFONY__ENV__DATABASE_NAME: wallabag
SYMFONY__ENV__DATABASE_USER: wallabag
SYMFONY__ENV__DATABASE_PASSWORD: wallabag
SYMFONY__ENV__DATABASE_CHARSET: utf8mb4
SYMFONY__ENV__REDIS_HOST: redis
SYMFONY__ENV__REDIS_PORT: 6379
SYMFONY__ENV__REDIS_PASSWORD: root
# 配置自己的邮箱
SYMFONY__ENV__FROM_EMAIL: wallabag@example.com
# 配置自己的 URL,跳转以及请求时,都会加上这个前缀,所以域名和 ip 会跨域
SYMFONY__ENV__DOMAIN_NAME: http://localhost
restart: always
networks:
- net1
volumes:
# 将图片映射挂载到本地,这样docker停止了,数据不会丢失
- /var/www/wallabag/images:/var/www/wallabag/web/assets/images
depends_on:
- mysql
- redis
mysql:
image: mariadb:10.10
environment:
MYSQL_ROOT_PASSWORD: root
# 注意:不要再为 wallabag 指定数据库、用户名和密码,因为 wallabag 会自动创建,如果指定了那么将无法创建,导致程序无法启动
# MYSQL_DATABASE: wallabag
# MYSQL_USER: wallabag
# MYSQL_PASSWORD: wallabag
networks:
- net1
volumes:
- mysql:/var/lib/mysql
restart: always
redis:
image: redis:alpine
environment:
REDIS_PASSWORD: root
networks:
- net1
volumes:
- redis:/data
restart: always
volumes:
mysql:
redis:
networks:
net1:
driver: bridge
安装 Docker Compose 并启动容器
安装 Docker Compose 并启动服务。
# 安装 Docker Compose
yum install docker-compose
# 执行 Docker Compose 命令,后台启动 Docker 容器
docker-compose up -d
开启防火墙并放行端口
可选步骤,如果遇到网站无法访问的情况,则需要检查防火墙是否开启。
# 检查防火墙是否开启
systemctl status firewalld
# 如果没有开启,需要开启防火墙
systemctl start firewalld
# 放行 80 端口
firewall-cmd --zone=public --add-port=80/tcp
# 放行 443 端口
firewall-cmd --zone=public --add-port=443/tcp
卸载 Docker 容器
期间,如果想停止服务,重新部署时,需要执行下面命令。
# 执行 Docker Compose 命令,停止正在执行的容器,如果想同时删除数据卷,则需要使用 -v 参数
docker-compose down
# 重启 Docker 服务
systemctl restart docker
Comments NOTHING