如题,最近帮人装个WordPress,想起来用docker方便,这里作个记录。
原文:https://my.oschina.net/finchxu/blog/2877580
由于docker要求linux内核版本3.10以上我记得,因此直接用的centos7省去不少麻烦。html
主机在国内的先把yum源改为国内的阿里云或者163的,这样避免网络因素致使下载太慢
而后系统安装后第一次使用最好是更新一下
yum update
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-enginemysql
rm -rf /var/lib/docker/ 这里删除全部的额配置文件和镜像等等
先删除旧的而后再安装最新的docker-ce。linux
由于centos7的默认yum安装的是1.7.1的老版本,这里是安装最新的docker-ce版本。git
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum update 这里再更新一下避免问题
yum list docker-ce --showduplicates | sort -r 查看全部可用版本
yum install docker-ce-
systemctl start docker
docker version 查看版本
docker run hello-world 验证安装
这里我习惯用docker-compose来统一管理docker的镜像和容器。这里用的官方方法安装的compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version 查看版本验证安装
都装好了,而后编写docker-compose.yml文件,仍是参照官方文档:sql
mkdir myblog && cd myblog 建立项目文件夹
vim docker-compose.yml 建立文件
复制进下边的内容
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your-mysql-root-password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
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:
上边做了目录映射,来防止容器重启致使的数据丢失,数据库和网站数据都映射到了本地。docker
docker-compose up -d 这里注意要用root管理员用户使用命令。
等待推送完,而后就能够在浏览器访问网站了。若是网络太慢能够用阿里云端镜像加速功能。数据库
问题:vim
1.以前遇到过容器状态显示restarting的提示,此时最好是查看docker的logscentos
docker logs [容器名/容器ID]|less
也有人说是docker须要2G内存不够爆了,其实不须要,512M内存就能够运行,具体看你的项目需求。
2.也有人没有注意到打开防火墙端口,查看本身是iptables仍是firewall(理论上的默认防火墙),而后用相应的命令打开相应的80端口解决之。
3.还有人遇到容器启动后没法访问,查看端口发现docker只是把端口映射到了tcp6,我也觉得是端口只是映射到了ipv6端口,但是并非这个意思,我重装了docker-ce(注意要完全删除配置文件),docker-compose.yml里面改为了版本3.3就解决了问题,因此他实际上是同时映射了tcp和tcp6。
若是你删除了从新安装了不能解决问题,那么我给你留下了一些线索:
http://dockone.io/question/569