如題,最近幫人裝個WordPress,想起來用docker方便,這裡做個記錄。 原文:https://my.oschina.net/finchxu/blog/2877580 因為docker要求linux內核版本3.10以上我記得,所以直接用的centos7省去很多麻煩。 主機在國內的先把yum源改 ...
如題,最近幫人裝個WordPress,想起來用docker方便,這裡做個記錄。
原文:https://my.oschina.net/finchxu/blog/2877580
因為docker要求linux內核版本3.10以上我記得,所以直接用的centos7省去很多麻煩。
主機在國內的先把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-engine
rm -rf /var/lib/docker/ 這裡刪除所有的額配置文件和鏡像等等
先刪除舊的然後再安裝最新的docker-ce。
因為centos7的預設yum安裝的是1.7.1的老版本,這裡是安裝最新的docker-ce版本。
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-
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文件,還是參照官方文檔:
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-compose up -d 這裡註意要用root管理員用戶使用命令。
等待推送完,然後就可以在瀏覽器訪問網站了。如果網路太慢可以用阿裡雲端鏡像加速功能。
問題:
1.之前遇到過容器狀態顯示restarting的提示,此時最好是查看docker的logs
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
https://github.com/moby/moby/issues/2174
https://github.com/moby/moby/issues/27491#event-833578007