如題,最近幫人裝個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