docker 安装

  • 使用官方提供的安装脚本,安装最新版的Docker
    curl -sSL https://get.docker.com/ | sh
  • 安装完成后,通过如下命令启动Docker的守护进程,并让它随系统启动自动加载
    sudo service docker start
    sudo chkconfig docker on
    ## 或者
    sudo systemctl start docker
    sudo systemctl enable docker
  • 添加用户(jerry)到Docker组
    sudo usermod -aG docker jerry

命令笔记(centos),基于docker镜像2233466866/lnmp

下载镜像

docker pull 2233466866/lnmp

创建基本目录

mkdir -p /app/lnmp/default /docker/lnmp/data/mysql /docker/lnmp/conf/vhost /docker/lnmp/logs /docker/lnmp/temp /docker/lnmp/backup

下载容器配置文件到本地相应目录

docker run -itd -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true --name=lnmp 2233466866/lnmp
docker exec -it lnmp /bin/bash
docker cp lnmp:/etc/my.cnf /docker/lnmp/conf/my.cnf
docker cp lnmp:/usr/local/nginx/conf/nginx.conf /docker/lnmp/conf/nginx.conf
cp /docker/lnmp/conf/my.cnf /docker/lnmp/backup/my.cnf
cp /docker/lnmp/conf/nginx.conf /docker/lnmp/backup/nginx.conf

查看或修改基本配置(代码目录,日志保存目录及vhost目录配置添加)

my.cnf

[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

nginx.conf

user                    www;
worker_processes auto;
worker_cpu_affinity auto; worker_cpu_affinity auto;
pid logs/nginx.pid; events {
worker_connections 102400;
} http {
charset utf-8;
server_tokens off; log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; include mime.types;
default_type application/octet-stream; client_max_body_size 20M; sendfile on;
keepalive_timeout 20; gzip on;
gzip_vary on;
gzip_comp_level 1;
gzip_types text/css application/javascript application/json image/png image/webp image/apng image/jpeg image/x-icon; autoindex_localtime on error_log /logs/z_error.log;
access_log /logs/z_$host.log main; server {
listen 80 default;
root /www/default;
return 500;
}
include vhost/*.conf;
}

停止并删除测试容器

docker stop lnmp
docker rm lnmp

重新创建容器

docker run -dit \
-p 80:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
-e TC="Asia/Shanghai" \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /app/lnmp:/www \
-v /docker/lnmp/data/mysql:/data/mysql \
-v /docker/lnmp/conf/my.cnf:/etc/my.cnf \
-v /docker/lnmp/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf \
-v /docker/lnmp/conf/vhost:/usr/local/nginx/conf/vhost \
-v /docker/lnmp/logs:/logs \
--privileged=true \
--name=lnmp \
2233466866/lnmp

mysql 数据库配置(/etc/my.cnf)

/bin/mysql_secure_installation
cat /var/log/mysqld.log|grep 'A temporary password'
SET PASSWORD = PASSWORD('123456');

php.ini 配置(/usr/local/php7/lib/php.ini)

mysqli.default_socket = /var/lib/mysql/mysql.sock

linux 相关设置修改

添加不能登陆的用户www

groupadd www
useradd -M -g www -s /usr/sbin/nologin www

修改时区(/etc/profile)

TZ='Asia/Shanghai'; export TZ
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

多站点配置

www.test.test.conf

server {
listen 80;
server_name test.test; rewrite ^(.*)$ $scheme://www.test.test$1 permanent;
}
server {
listen 80;
server_name www.test.test; if ($time_iso8601 ~ "^(\d{4}-\d{2}-\d{2})") {
set $ttt $1;
}
access_log /logs/$host-$ttt-access.log main; root /www/test; location / {
index index.php index.html index.htm;
} location ~* \.php {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
} }

参考链接

Docker 实践搭建php环境的更多相关文章

  1. 使用Docker快速搭建ELK环境

    今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...

  2. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  3. docker中搭建jenkins环境

    想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...

  4. TensorFlow(1):使用Docker镜像搭建TensorFlow环境

    1,关于TensorFlow TensorFlow 随着AlphaGo的胜利也火了起来. google又一次成为大家膜拜的大神了.google大神在引导这机器学习的方向. 同时docker 也是一个非 ...

  5. 使用docker快速搭建hive环境

    记录一下使用docker快速搭建部署hive环境 目录 写在前面 步骤 安装docker 安装docker 安装docker-compose 配置docker国内镜像源(可选) 安装git & ...

  6. Docker实践--搭建Yapi测试平台

    背景:项目需要选择不同测试平台,筛选一个最佳平台 现状:一台机器安装多套环境,虚拟机太繁琐 解决方案:通过Docker模拟安装测环境 参考:https://blog.csdn.net/qq_32447 ...

  7. Docker快速搭建LNMP环境

    一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...

  8. 使用docker快速搭建本地环境

    在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越来越多. 然而要顺利的安装好这些中间件也是一个比较费时费力的工作. 俗话说" ...

  9. 基于 docker容器搭建机器学习环境

    下载docker镜像 docker pull ubuntu:18.04 进入ubuntu系统命令 docker run -ti ubuntu /bin/bash 正确退出系统方式 先按,ctrl+p ...

随机推荐

  1. mtk相机冷启动拆解

    1 概述 冷启动大致可以分成以下几块内容: S0 (system) 主要是 Activity 的创建耗时(从 Touch up,即 ptr:up 开始) ptr:up S1 App 从 Activit ...

  2. POJ-1797(最短路变形-dijkstra)

    Heavy Transportation POJ-1797 这题是最短路题型的变形,该题不是求起点到终点的最短路,而是求路径中的最小边的最大值. 这题的求解思路是:将原来dijkstra中的松弛方程改 ...

  3. 【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制 -- 小项目:彩色小台灯

    基本功能: 长按控制按钮开机,长按控制按钮关机(>3s) 通过三个调节按钮调节灯的颜色,每一个按钮分别对应R,G,B值 模式切换:短按控制按钮切换模式(长亮模式/闪烁模式) 元器件清单: Ard ...

  4. ModuleNotFoundError: No module named 'django'

    1 .就在前天 我还能用python3 manage.py runserver 0.0.0.0:8000 启动Django  今天就突然报错了(心情极为复杂,你这也能信?)   2.打印python找 ...

  5. springmvc redis @Cacheable扩展(一)

    springmvc 中有自带的cache处理模块,可以是方法级别的缓存处理,那么在实际使用中,很可能自己造轮子,因为实际中永远会有更奇怪的需求点.比如: 1 清除缓存时候,能模糊的进行删除 2 针对不 ...

  6. 【译】Visual Studio 的 Razor 编辑器的改进

    自从我们在一个通用的 Razor 语言服务器上发布了 Visual Studio 的一个新的实验性 Razor 编辑器的第一个预览版以来,已经过去了6个月,现在是时候更新一下我们的进展了.团队一直在努 ...

  7. css整理之-----------技巧、黑魔法

    css 看起来比较简单,但是要想做的好也不是那么容易,我们在平时开发中,主要用css 来美化我们的html结构,所有我觉得css 还是挺重要的,这里记录整理一些关于css 的技巧以及容易忘记的知识点. ...

  8. 危害api收集

    以下每一条代码,无论其通过什么方式被调用,在哪个类里被调用,传入什么参数,都具有唯一不变性(在逆向出来的的smali文件里),故可以作为匹配的凭证.     网络操作相关: Ljava/net/URL ...

  9. golang float32/64转string

    v := 3.1415926535 s1 := strconv.FormatFloat(v, 'E', -1, 32)//float32s2 := strconv.FormatFloat(v, 'E' ...

  10. Elasticsearch 结构化搜索、keyword、Term查询

    前言 Elasticsearch 中的结构化搜索,即面向数值.日期.时间.布尔等类型数据的搜索,这些数据类型格式精确,通常使用基于词项的term精确匹配或者prefix前缀匹配.本文还将新版本的&qu ...