快速构建开发、测试、生产 L(Alpine Linux) + N(Nginx) + M(MariaDB) + P(PHP) Docker 容器应用环境。
与
- call-websockt
。
- php-superviosr
运行基于 workman 的 PHP Socket 服务。
- call-websockt
实现基于 Supervisor 的队列服务。
- php-supervior
与
- cert
目录文件。
- conf.d
安装 Docker 在不同平台、不同地域环境、不同操作系统中的方式不尽相同,这里还是推荐使用 官方 CentOS 安装方式,其他方法请自行搜索,另外,特别推荐使用阿里云提供的 Docker Hub 镜像站点,为你提供专属 Docker 加速服务。
- $ sudo yum install -y yum-utils
- $ sudo yum-config-manager \
- --add-repo \
- https://download.docker.com/linux/centos/docker-ce.repo
- $ sudo yum makecache fast
- $ sudo yum -y install docker-ce
- ## start up docker
- $ sudo systemctl enable docker
- $ sudo systemctl start docker
- # Add user to docker group
- $ sudo usermod -aG docker $USER
推荐 Docker Compose 官方 Gtihub 仓库 安装方式,请先选择一个版本。
- $ curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- $ chmod +x /usr/local/bin/docker-compose
- $ git clone https: //github.com/bravist/lnmp-docker
文件,配置项目环境变量,注意,在容器运行成功后,需要再次修改
- .env.example
文件,保证多个项目之间的程序互通。
- .env
- $ cd lnmp-docker
- $ cp .env.example .env
- $ docker-compose build && docker-compose up -d
- ➜ ~ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- f4452c868dcc lnmpdocker_nginx "nginx -g 'daemon off" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp lnmp-nginx
- 15182399966b lnmpdocker_php-supervisor "supervisord --nodaem" 2 hours ago Up 2 hours lnmp-php-supervisor
- a68c55c28995 bravist/php-fpm-alpine-aliyun-app:1.2 "/usr/sbin/php-fpm7 -" 2 hours ago Up 2 hours 0.0.0.0:9000->9000/tcp lnmp-php-fpm
- eff86b31f2ba lnmpdocker_call-websocket "/usr/bin/php /usr/sh" 2 hours ago Up 2 hours 0.0.0.0:8190-8191->8190-8191/tcp lnmp-call-websocket
- bd3cecff945e mariadb "docker-entrypoint.sh" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp lnmp-mariadb
- 279b2f995b2a lnmpdocker_redis "docker-entrypoint.sh" 2 hours ago Up 2 hours 0.0.0.0:6379->6379/tcp lnmp-redis
配置参数,这里先要通过
- DOCKER_HOST_IP
查询 nginx 容器获取。
- docker inspect
- $ docker inspect lnmp-nginx | grep IPAddress
- "SecondaryIPAddresses": null,
- "IPAddress": "",
- "IPAddress": "192.168.32.7",
- $ vi .env
- ...
- DOCKER_HOST_IP = 192.168.32.7
- ...
- :wq
- $ docker-compose build && docker-compose up -d
在构建过程中,如果出现问题请第一时间发布 issue,这里特别提示:
- # 查看所有运行和者退出的容器
- $ docker ps -a
- # 删除停止的容器
- $ docker rm -f contianer_name ...
- # 快速停止与删除容器集群
- $ docker-compose down
- # 删除本地docker 镜像
- $ docker rmi -f image_name ....
shell 登录,因为所有的容器基于 Alpine Linux ,默认使用
- sh
shell。
- sh
- $ docker exec -it lnmp-nginx sh
ctop 可以用于查询容器资源占用情况,推荐安装,比如我们的服务器安装了 Gitlab 与 LNMP docker 后的使用情况:
- $ ctop
- ctop - 15:36:35 CST 10 containers
- NAME CID CPU MEM NET RX/TX IO R/W PIDS
- ◉ gitlabdocker_gitlab_1 97d5ba4b4918 5% 1.99G / 7.64G 948M / 1.6G 120M / 776K 0
- ◉ gitlabdocker_postgresql_1 146b662e4d62 0% 75M / 7.64G 897K / 8M 24M / 0B 0
- ◉ gitlabdocker_redis_1 3bcf1582f892 2% 14M / 7.64G 1.6G / 940M 5M / 0B 0
- ◉ lnmp-call-websocket eff86b31f2ba 0% 66M / 7.64G 3K / 648B 20M / 0B 0
- ◉ lnmp-mariadb bd3cecff945e 0% 179M / 7.64G 90K / 276K 27M / 0B 0
- ◉ lnmp-nginx f4452c868dcc 0% 8M / 7.64G 14M / 5M 5M / 0B 0
- ◉ lnmp-php-fpm a68c55c28995 0% 72M / 7.64G 1M / 13M 20M / 0B 0
- ◉ lnmp-php-supervisor 15182399966b 1% 1.8G / 7.64G 92M / 145M 26M / 0B 0
- ◉ lnmp-redis 279b2f995b2a 0% 8M / 7.64G 62M / 16M 2M / 0B 0
- ◉ lnmp-www 09c684094c18 - - - - -
- $ docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- lnmpdocker_nginx latest 8ed67b3d522c 2 hours ago 15.5 MB
- lnmpdocker_php-supervisor latest 28d1689ec35b 2 hours ago 160.4 MB
- lnmpdocker_redis latest 61cedd081dd7 2 hours ago 12.63 MB
- lnmpdocker_call-websocket latest 47883e0cc4cd 2 hours ago 117.9 MB
- docker.io/bravist/php-fpm-alpine-aliyun-app 1.2 1c98507f2de3 2 hours ago 124 MB
- docker.io/bravist/php-cli-alpine-aliyun-app 1.0 505a11124094 24 hours ago 117.9 MB
- docker.io/redis 3.0-alpine 1fbae20f0017 24 hours ago 12.63 MB
- docker.io/mariadb latest ea0322bb4096 9 days ago 395.1 MB
- docker.io/nginx 1.13.1-alpine 7ebd6770d0d6 10 days ago 15.49 MB
来源: http://www.tuicool.com/articles/nuYfMvb