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 菜鸟教程
- docker安装
- Docker命令详解(run篇)
- 2233466866/lnmp
- eample vhost conf
- Nginx配置Web服务器
- Nginx error log
- Nginx域名访问的白名单配置
- Nginx时区设置
- Nginx目录遍历功能时间相差8小时
- docker已运行容器里的时区修改
- nginx日志按天生成&定期删除日志
- Linux useradd命令
- 使用Docker快速搭建PHP开发环境
- fix docker: Got permission
- mysql的配置utf8mb4
- php修改文件上传限制
- 出现 Request Entity Too Large问题的解决方法
- docker给已存在的容器添加或修改端口映射
- 如何在 Ubuntu 18.04 中切换多个PHP版本
- Ubuntu下apache的安装与配置
- CentOS8安装Docker出现package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3
- centos7下安装redis6.0以上版本,出现gcc低版本导致报错