最近本身在弄了個Nginx PHP Mysql Let's encrypt的docker,下面記錄一下php
1)先裝 Let's encrypthtml
docker run --rm -p 80:80 -p 443:443 \
-v /etc/letsencrypt:/etc/letsencrypt \
quay.io/letsencrypt/letsencrypt auth \
--standalone -m myemail@domain.com --agree-tos \
-d domain.commysql
-m 和 -d 分別填上本身的電郵和域名nginx
2)裝上MySQLsql
docker run --name=mysql1 -p
3306:
3306
-p
33060:
33060
-d mysql/mysql-server:5.7docker
而後整理一下,先查出原始root的密碼apache
這是root的原始密碼
而後登入進去改密碼
docker logs mysql1 2>&1 | grep GENERATED GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis
docker exec -it mysql1
bashtomcat
mysql -u root -p'Axegh3kAJyDLaRuBemecis
'bash
進去後改密碼app
mysql>use mysql;
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');
#建立一個新用戶
mysql>GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
再退出,此時,外面能夠訪問MYSQL了
3)裝上nginx php
試過過官方的nginx的docker 鏡像,裝PHP時特麻煩,用apt-get install php後都不能啓動php-fpm 因而放棄
試過用官方PHP的docker 鏡像,若是純PHP的docker容器啓動不了,試過php-fpm的容器就裝nginx後 nginx啓動不了或者很麻煩
以上我用了另一個
docker run --name my-apache-php-app -v /etc/letsencrypt:/etc/letsencrypt -d -p 12345:443 -p 9000:9000 richarvey/nginx-php-fpm:latest
這個鏡像很方便,安裝後去 /etc/nginx/sites-available 改一下default-ssl.conf,見到配置文件已經把let's encrypt寫好,只要把裏面的域名改一下就能夠,改好後把它複製到sites-enabled
而後 /usr/local/etc/php,見到兩份文件的,而後把php.ini-development php.ini-production 其中一份複製成php.in
最後把本身網站複製到 /var/www/html下面
4)最後把更新let's encrypt設爲定時
$crontab -e
00 14 * * * docker run -it --rm -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt quay.io/letsencrypt/letsencrypt:latest renew --dry-run
05 14 * * * docker restart my-apache-php-app
05 14 * * * docker restart tomcat8
完成