主要内容参考来自:https://www.cnblogs.com/saneri/p/11799865.html 这篇文章作者的环境应该是linux,他创建了两个容器,第一个容器演示了最简单的运行并使用了--rm参数实例关闭自动销毁,第二个容器讲了如何映射目录和端口
我经过试验在window下大同小异,搬一些他的内容过来,区别地方我会重点讲一下
主要的命令有这几个:
docker search nginx 这个命令用来搜索docker官方仓库如果配置了其他镜像就是对应镜像仓库里nginx镜像
docker pull nginx 从上面搜索到的内容中拉取nginx,其实有很多镜像,一般这个nginx不带其他内容的是nginx官方给的当前版本镜像资源
docker images nginx 这个命令主要是查看是不是成功拉取到了nginx镜像,成功的状态下会有类似下面的返回
REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f949e7d76d63 5 weeks ago XXX MB
docker run --name nginx-test -p 8080:80 -d nginx
其中,该命令的三个命令行参数的含义如下。
--name nginx-test:容器的名字叫做nginx-test,名字自己定义.
-p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d:容器启动后,在后台运行
这个时候访问localhost:8080如果运行正常的话就能看到
上面一般是测试例子,简单掌握docker安装nginx的用法
实际上使用中,通常我们要映射端口和文件目录
所以我们一般创建容器会使用类似这样的命令
docker run --name nginx-test -p 8080:80 -v D:/study/docker/nginx/www:/usr/share/nginx/html -v D:/study/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v D:/study/docker/nginx/logs:/var/log/nginx -d nginx
命令说明:
-p 8080:80: 将容器的 80 端口映射到主机的 8080 端口.
--name nginx-test:将容器命名为 nginx-test
-v D:/study/docker/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
-v D:/study/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
这里一定注意,我在这里被坑了很久,就是在执行这个docker run命令之前,一定要先创建好这个nginx.conf文件,哪怕是个空文件,也一定要创建,不然在windows环境下执行run命令会报错,虽然创建成功,而且会创建成一个nginx.conf的文件夹,导致运行失败,需要重新删掉镜像(docker rm nginx-test)再创建才可以
建议里面填上下面斜体内容
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
-v D:/study/docker/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。
如果上面操作都正常再访问localhost:8080就可以打开展示上图的默认页面了,
进入例如我的例子中D:/study/docker/nginx/www目录,然后创建个静态文件,刷新页面,你会发现什么都没有发生。。
上面斜体字代码中,蓝色部分前面加个#号,再刷新页面!
ok,自己创建的静态页面内容正常执行了!目前我遇到的坑基本上都描述完了!今天的记录就到这里!
版权所有:有信心——uxinxin 我的个人网站欢迎常来!手机版(新站开启,请多多关照) 豫ICP备12017930号-1
豫公网安备 41910102000493号