这是本文档旧的修订版!
docker环境配置
安装
docker pull php:5.6-fpm
docker pull redis
docker pull nginx
docker pull mysql:5.7
进PHP环境
docker exec -it php-fpm /bin/bash
安装GD环境
#更新软件源
apt update
#安装各种库
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev docker-php-source extract cd /usr/src/php/ext/gd
#准备编译
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png- dir=/usr/include --with-freetype-dir=/usr/include/freetype2
#编译安装
docker-php-ext-install gd
#pdo mysql 扩展
docker-php-ext-install pdo docker-php-ext-install pdo_mysql
安装PHP扩展
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz cp /data/git/phpredis-3.1.3.tar.gz /tmp/redis.tar.gz tar xfz /tmp/redis.tar.gz rm -r /tmp/redis.tar.gz mkdir -p /usr/src/php/ext mv phpredis-3.1.3 /usr/src/php/ext/redis docker-php-ext-install redis
初始化并启动
docker-compose up -d
以后就直接吏用
docker-compose restart
即可重启,
删除重建:
docker-compose down
附件
docker-compose.yml
———————————————start=======================================
version: '2.1'
services:
nginx:
image: “nginx”
container_name: nginx
restart: always
volumes:
- /data/git:/data/git
- ../nginx/conf.d:/etc/nginx/conf.d
ports:
- “80:80”
depends_on:
- php-fpm
links:
- php-fpm:php
php-fpm:
image: “php:5.6-fpm”
container_name: php-fpm
restart: always
volumes:
- /data/git:/data/git
ports:
- “9000:9000”
depends_on:
- redis
- mysql
links:
- redis:redis
- mysql:mysql
mysql:
image: “mysql:5.7”
container_name: mysql
restart: always
ports:
- “3306:3306”
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
–character-set-server=utf8mb4
–collation-server=utf8mb4_general_ci
–explicit_defaults_for_timestamp=true
–lower_case_table_names=1
–max_allowed_packet=128M
–sql-
mode=“STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,
NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO”
volumes:
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf/my.cnf:/etc/my.cnf:ro
- /data/mysql/init:/docker-entrypoint-initdb.d/
redis:
image: “redis:latest”
container_name: redis
restart: always
ports:
- “6379:6379”
=======================end————————————
nginx 虚拟机配置:
server{
listen 80; server_name newerp.sx.com; root /data/git/newerp-stand/public; index index.php index.html index.htm; location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 100d; } location ~ .*\.(js|css)?$ { expires 30d; } location ~ \.php(/|$) { fastcgi_pass php:9000; fastcgi_index index.php; include conf.d/fastcgi.conf; set $fastcgi_script_name2 $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") { set $fastcgi_script_name2 $1; set $path_info $2; } fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2; fastcgi_param SCRIPT_NAME $fastcgi_script_name2; }
}
程序内,涉及到需要连接mysql的,mysql地址统一写:mysql 如果需要连redis的,地址统一写:redis
====================================其中php如查使用素玄的源,不需要做太多PHP的配置 如下: docker harbor :
https://blog.csdn.net/aixiaoyang168/article/details/73549898
——使用:
本机hosts添加:192.168.0.13 docker.suxuantech.cn docker login docker.suxuantech.cn:8070 输入帐号和密码: dev Dev12345
docker pull docker.suxuantech.cn:8070/suxuan/php56sx:latest docker pull redis docker pull nginx docker pull mysql:5.7
拉取PHP时,如果出现:Error response from daemon: Get https://docker.suxuantech.cn:8070/v2/: http: server gave HTTP response to HTTPS client 则需要把docker客户端配置里增加insecure-registries 配置
修改yml文件:
php-fpm:
image: "docker.suuxantech.cn/suxuan/php56sx"
———————————————————————————— 虚拟机配置不变
有修改后: 1.先把修改的容器,打包成本地的镜像 docker commit -m 'remove bease logs' -a “php56sx” php-fpm php56sx 2.把镜像打个Tag docker tag php56sx docker.suxuantech.cn:8070/suxuan/php56sx:latest 3.推送到远端 docker push docker.suxuantech.cn:8070/suxuan/php56sx