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