Centos7&docker-ce&compose&wordpress

如題,最近幫人裝個WordPress,想起來用docker方便,這裏作個記錄。php

由於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-engine

rm -rf /var/lib/docker/               這裏刪除全部的額配置文件和鏡像等等

先刪除舊的而後再安裝最新的docker-ce。mysql

由於centos7的默認yum安裝的是1.7.1的老版本,這裏是安裝最新的docker-ce版本。linux

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-<VERSION STRING>    好比yum install docker-ce-18.03.0.ce
systemctl start docker    啓動進程
systemctl enable docker    設置開機啓動
docker version  查看版本
docker run hello-world   驗證安裝

這裏我習慣用docker-compose來統一管理docker的鏡像和容器。這裏用的官方方法安裝的composegit

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文件,仍是參照官方文檔:github

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:

上邊做了目錄映射,來防止容器重啓致使的數據丟失,數據庫和網站數據都映射到了本地。sql

docker-compose up -d    這裏注意要用root管理員用戶使用命令。

等待推送完,而後就能夠在瀏覽器訪問網站了。若是網絡太慢能夠用阿里雲端鏡像加速功能。docker

如何找到volume出來的網站和數據庫目錄呢?這是一種卷標的方式存儲的文件。數據庫

docker volume ls

docker volume inspect wordpress 這裏的wordpress替換成你上邊ls出來的名字啊

這樣不就出來了。vim

還有上傳限制2M如何解決?

docker exce -it 容器ID /bin/bash
進入容器bash
apt-get update && apt-get install vim
由於容器裏沒有vim,因此安裝之。對了,不關你是centos仍是Ubuntu,在這個容器裏都用apt管理軟件。
找到你的.htaccess文件,假如在/var/www/html/.htaccess
vim /var/www/html/.htaccess
在裏邊添加以下內容
php_value post_max_size 512M
php_value upload_max_filesize 512M

 

問題:

1.以前遇到過容器狀態顯示restarting的提示,此時最好是查看docker的logs

docker logs [容器名/容器ID]|less

也有人說是docker須要2G內存不夠爆了,其實不須要,512M內存就能夠運行,具體看你的項目需求。

2.也有人沒有注意到打開防火牆端口,查看本身是iptables仍是firewall(理論上的默認防火牆),而後用相應的命令打開相應的80端口解決之。

3.還有人遇到容器啓動後沒法訪問,查看端口發現docker只是把端口映射到了tcp6,我也覺得是端口只是映射到了ipv6端口,但是並非這個意思,我重裝成了docker-ce-17.06.1(注意要完全刪除配置文件),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

https://blog.csdn.net/qq_27575627/article/details/71413004

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息