在docker仓库拉取mysql5.7的镜像
如果非root用户请用sudo打头
docker pull mysql:5.7
在docker仓库拉取wordpress最新版本
docker pull wordpress:latest
创建docker-compose文件所在文件夹
- 在服务器根目录建立/usr/myblog文件夹
- 进入所在目录 cd /usr/myblog
- 创建docker-compose.yml文件
vim docker-compose.yml version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: 你的root密码 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress ports: - "3306:3306" wordpress: depends_on: - db image: wordpress:latest volumes: - wp_site:/var/www/html ports: - "80:80" - "443:443" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: wp_site:
- yml详细格式说明请看docker官方文档
- version 是compose文件版本号
- services 是需要编排那些服务
- db 是服务名
- image 是此服务镜像地址
- volumes 挂载的数据卷,我们采用容器内部挂载,这样方便容器的迁移
- restart.always docker启动的时候服务同步启动
- environment 环境变量 可以用来设置数据库的一些信息
- ports 映射到宿主机的端口号,数据映射后,可用连接工具连接
- depends_on 表示依赖于db 也就是数据库服务
用docker-compose命令编排数据库和wordpress服务
确保docker-compose命令在docker-compose.yml所在文件目录执行
docker-compose up -d #-d表示后台执行,不加会实时输出日志 #常用命令介绍 docker-compose ps #查看启动后的容器 docker-compose logs #查看日志 docker-compose down #关闭编排的服务
用命令进入mysql和wordpress容器
如果需要做数据库备份以及文件替换可以进入容器内操作
docker exec -it myblog_wordpress_1 bash #进入wordpress目录 docker exec -it myblog_db_1 bash #进入mysql目录
访问站点
在浏览器输入站点ip就可以查看wordpress开始安装的提示,那就说明成功了,有问题可以留言。
但是整个容器迁移空间会比较大,尽量只迁移数据文件最佳
docker-compose启动的容器,如果要单个操作,使用docker stop或者restart操作,文章中的配置文件将数据卷和容器挂载到了一起,实际上是docker的在宿主机的临时空间,如果docker-compose文件更改了,只需要在执行docker-compose up -d就可以了,有更新的容器会重新创建,但是里面映射出来的数据目录是不会重置的,所以不用担心,但以防意外,尽量做好备份。
如果要做数据的迁移,只需要备份对应数据库和网站html文件即可,我也尝试将整个容器迁移,但是云主机的下载速度太慢,整个容器迁移当然是最完美的了。