docker新手,docker nginx的安装折腾了半天,记录一下。

流程

  1. 下载镜像
    docker pull nginx

  2. 静态文件目录、log目录
    直接使用本地目录即可,因为不需要从container中copy源文件到本地,所以宿主主机本地mkdir对应的目录即可。
    mkdir ~/development/docker/docker-nginx/log
    mdkir ~/development/docker/docker-nginx/html

  3. 配置文件
    需要从container中的文件中copy一份到本地,作为初始配置,所以先启动一个默认container,copy文件后将其删除即可。
    mkdir ~/development/docker/docker-nginx/conf
    docker cp 525adda2ecb7:/etc/nginx/* ~/development/docker/docker-nginx/conf/
    配置文件这里花了不少时间,因为link的配置之前没有正确配置。可以从错误日志中查看到对应的错误信息

    open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)

    之前copy时将“/etc/nginx”这个目录copy到本地conf目录了,而非”/etc/nginx”下的所有文件。。

  4. 创建容器&启动

    docker container create -it --name=docker-nginx -v ~/development/docker/docker-nginx/html/:/usr/share/nginx/html:ro -v ~/development/docker/docker-nginx/conf:/etc/nginx:ro -v ~/development/docker/docker-nginx/logs:/var/log/nginx  -p 80:80 nginx

    暂时没有启动多个nginx容器的需求,这里使用了固定端口的模式(-p 80:80)。
    发现没有指定固定端口,也没有使用随机端口(-P)时,访问一次nginx之后就不可访问了,但是container状态正常。不知道这个是什么原因?

reference