云主机下的docker+Nginx搭建
之前申请到了腾讯云服务器,所以在上面折腾了一下 Nginx。
准备工作
系统配置
1 | 操作系统 Ubuntu Server 14.04.1 LTS 64位 |
系统镜像
一开始拿 Ubuntu 装 docker,结果启动后会出点小问题,所以就决定用腾讯云提供的系统镜像了。
1 |
|
docker 使用
用 ssh 连接主机,在终端里输入
1 | docker -v |
可以查看 docker 的版本,我这里的版本是Docker version 1.8.2 build 0a8c2e3
使用命令
1 | docekr search nginx |
可以搜索 nginx 仓库。
注:如果发现 docker 使用会存在问题,可以使用 sudo -s 提权为 root
使用官方的 nginx 仓库
1 | docker pull nginx |
pull 好以后,就可以正式启动 nginx 容器了。
官方的 nginx 容器里,连 vim 都没有,这是个比较苦恼的事情,所以可以先启动容器进入交互界面安装 vim。
1 | docker run -t -i -p 80:80 nginx /bin/bash |
这里进入的是 bash,-p 80:80
是将容器里的80端口与主机的80端口进行绑定。
进入容器后,会发现并不能访问容器里的 nginx 欢迎界面,这是因为 nginx 服务并没有启动。
使用命令
1 | service nginx start |
就可以启动 nginx 服务了。
为了安装 vim,首先需要使用命令更新源。
1 | apt-get update |
接着使用命令
1 | apt-get install vim |
中途敲 y
确定安装。
安装完以后就可以使用了。
docker 常用命令
附加到一个已运行的容器
1 | docker attach ID |
停止一个容器
1 | docker stop Name/ID |
杀死一个容器
1 | docker kill Name/ID |
保存对容器的修改
1 | docker commit ID new_image_name |
列出当前所有正在运行的container
1 | docker ps |
列出所有container
1 | docker ps -a |
删除镜像
1 | docker rmi image_name |
Nginx 容器多域名绑定
在 docker Nginx 容器中,网站文件夹位于 /usr/share/nginx
, 默认的欢迎页面在 /usr/share/nginx/html
中。
一般,如果域名绑定云服务器,那么访问域名访问的是 Nginx container 默认网站。如果先添加二级域名,访问同一个容器中的另一个网站,可以进行一下操作。
Nginx 的配置文件在 /etc/nginx
文件夹里。配置文件在 conf.d
文件夹里。default.conf
为默认网站的配置。添加站点在 conf.d
文件夹中,可以新建一个 .conf
文件,例如site1.conf:
1 | server { |
如果这时候你就重启 nginx 服务,可能会启动失败,出现一下问题
1 | could not build the server_names_hash, you should increase |
这是因为 /etc/nginx/nginx.conf
文件没有修改好。
1 | vim /etc/nginx/nginx.conf |
找到 server_names_hash_max_size
这行,将后面的数字改为 512
,将下一行的 server_names_hash_bucket_size
后面的数字改为 128
。
这时重启 Nginx 服务,就可以正常运行了。