1、创建nginx文件夹,放置各种配置及日志等。
mkdir -p /docker/nginx
mkdir -p /docker/nginx/logs
docker 文件夹是我存放所有基础设施容器的地方。
2、创建nginx配置文件
cd /docker/nginx
vim nginx.conf
nginx.conf为主配置文件
user www-data;
worker_processes auto;
error_log /webser/logs/error.log;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /webser/logs/access.log main;
include mime.types;
default_type application/octet-stream;
sendfile on;
client_max_body_size 20m;
keepalive_timeout 65;
include /etc/nginx/conf.d/*;
}
最后一句include /etc/nginx/conf.d/*.conf;
这里的*.conf就是子配置。我只创建了一个default.conf
mkdir /docker/nginx/conf.d
cd /docker/nginx/conf.d
vim default.conf
在default.conf里面加入你的server级别的配置。
我这里只是监听了80端口,并反向代理到了9000端口
server {
listen 80;
server_name zj-dev.myysq.com.cn;
root /webser/www/mobilecheckquality/web/;
location ~ .*\.(js|css|png|jpg|gif)$
{
if (-f $request_filename) {
expires 1d;
break;
}
}
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
fastcgi_pass php1:9000; #php容器的IP地址
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
include /webser/www/mobilecheckquality/web/nginx-header.conf;
include /webser/www/mobilecheckquality/web/nginx-rewrite.conf;
}
3、创建dockerfile文件
vim /docker/nginx/dockerfile
FROM nginx:1.15.1
ADD ./nginx.conf /etc/nginx/nginx.conf
ADD ./conf.d /etc/nginx/conf.d/
RUN apt-get update && apt-get install -y \
curl \
vim \
telnet \
wget \
net-tools \
inetutils-ping
RUN mkdir -p /webser/logs \
&& mkdir -p /webser/www \
&& chown -R www-data:www-data /webser/logs \
&& chown -R www-data:www-data /webser/www
WORKDIR /webser/www
4、构建nginx镜像
docker build -t nginx .
5、创建docker-compose.yml容器编排
vim /docker/nginx/docker-compose.yml
version: '3.0'
services:
nginx:
restart: always
image: nginx
ports:
- 80:80
- 443:443
volumes:
- /docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- /docker/nginx/conf.d:/etc/nginx/conf.d:ro
- /docker/nginx/logs:/webser/logs
docker-compose对格式要求很严格注意里面的空格。
解释下我的设置
restart 永远重启
image 从nginx镜像拉取
ports 输出使用80,443端口
volumes 挂载外部卷到docker内部。这样就可以使用我们刚才创建好的配置了。
(这里面:ro的意思是只读的意思,表示第一第二个卷只能被容器读取不能写入)
6、运行
要保证在我们刚才创建的目录里
cd /docker/nginx
docker-compose up -d
加-d的意思是后台运行。
7、停止镜像
docker-compose down
8、进入镜像
docker exec -it 容器id /bin/bash
9、docker 常用命令
docker ps //查询所有正在运行的容器
docker ps -a //查询所有创建的容器
dockere stop [容器id/容器名] //停止运行容器
docker rm [容器id/容器名] //删除容器
docker images //查询所有拉取的镜像
docker rmi [REPOSITORY] //删除镜像
docker restart [容器id/容器名] //重启容器
docker inspect --format '{{ .NetworkSettings.IPAddress }}' c9996261e1c5 //查询容器ip地址
1766

被折叠的 条评论
为什么被折叠?



