安装mysql nginx redis php(非root用户请使用sudo命令)
第一步:拉取docker中镜像
docker pull php:7.2-fpm
docker pull nginx
docker pull mysql:5.7
docker pull redis:3.2
docker images
第二步:建立容器
# 自有docker mysql 容器
docker run --name myDb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
# 自有docker redis 容器
docker run --name myRedis -p 6379:6379 -d redis:3.2
# 自有docker php 容器
docker run -d -p 9000:9000 --name myPhp -v /usr/html:/var/www/html -v /etc/myPhp:/usr/local/etc/php --link myDb:myDb --link myRedis:myRedis --privileged=true php:7.2-fpm
# 自有docker nginx 容器
docker run \
--name myNginx -d \
-p 80:80 -p 443:443 \
-v /usr/html:/usr/share/nginx/html \
-v /etc/myNginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /etc/myNginx/servers:/etc/nginx/servers \
-v /etc/myNginx/letsencrypt:/etc/nginx/letsencrypt:rw \
-v /var/log/myNginx:/var/log/nginx \
--link myPhp:myPhp --privileged=true \
nginx
备注:-v 参数为挂载目录,即将容器内部目录软连到宿主机目录,对于容器的配置和日志挂载可以方便直接在宿主机查看,当然不挂载也可以进入容器内部查看。进入容器命令docker exec -ti containerID /bin/bash。
有两个坑:1.nginx挂载配置目录时nginx.conf最好提前在宿主机对应目录下添加好(因为nginx.conf是个文件非目录,docker挂载会提示一些问题)2. php挂载php.ini时也同样在宿主机中先配置好。后面安装php扩展会用到