在Docker下部署Nginx,包括:
- 部署一个最简单的Nginx,可以通过端口访问默认的网站
- 设置记录访问和错误日志的路径
以交互模式创建centos容器,如果本地没有镜像,会从仓库获取, 等待即可。
docker run -it centos /bin/bash
进入容器后通过以下命令更新源, 通过yum方式安装nginx服务
1 yum update 2 yum install -y nginx
修改配置文件 nginx.conf
server { listen 80 ; server_name 127.0.0.1; ... }
可以通过命令来加载配置文件
nginx -c /路径/nginx.conf
#可以通过以下命令,来启动,停止,重启 nginx服务
#service nginx start
#service nginx stop
#service nginx restart
exit 退出容器 ,这时需要将刚才我们修改的容器打包成自己的镜像
docker commit -a 'lemon' -m 'mycentos' 容器id 镜像名:v1.0 #通过 docker ps -a 查看所有容器 #上述参数 a 作者名, m 镜像描述
#v1.0代表tag,可以不加
查看新的镜像
docker images
以后台运行的方式启动创建nginx容器,并将容器80端口映射到本机端口
docker run --name nginx_test -p 80 -d mycentos:v1.0 nginx -g "daemon off;"
上诉命令参数:
--name 容器名设置为 nginx_test
-p 容器的80端口映射到宿主机上
-d 后台启动
nginx -g "daemon off;" 表示 nginx以前台方式 运行 , 这句非常重要,因为docker前台没有运行的应用,这样的容器,后台启动后,会立即自杀,因为他觉得他没事可做了。
当然也可以通过-v参数挂载本地目录
docker run --name nginx_test -p 80 -d -v `pwd`/logs:/var/log/nginx mycentos:v1.0 nginx -g "daemon off;"
参数解释:
-v `pwd`/logs:/var/log/nginx 将容器的/var/log/nginx 目录挂载到 当前目录下的logs文件夹 (没有会自动创建)
通过命令可以看到创建的nginx_test容器
可以看到 宿主机的32778端口映射到容器的80端口
访问32778端口,查看到nginx成功启动
查看当前目录下的 logs文件夹,成功看到 access.log ,error.log
参考: http://blog.csdn.net/meegomeego/article/details/50707532