让 docker 容器开机自启动

把自己的博客用 dockerfile 构建了一个镜像,其实就是把 nginx 环境包括 https 等等配置都打包了扔容器挂载外面的目录去访问,但是有个问题,就是如果重启宿主机,容器就无法启动,本来还试着把启动命令写到 /etc/rc.local 下。结果发现 docker 本来就有一个参数

docker run --restart=always -d  -v /www:/www  -v /wwwlogs:/var/log/wwwlogs -p 65423:22 -p 80:80 -p 443:443 e92

其中

docker run --restart=always  ……

就是让容器自动重启的。

这里遇到一个错误

➜  www docker run -d --name web -p 80:80 -p 443:443 -p 65422:65422 677
9145cda0615ada05cf8cc2038b6f9d6f254c4a8fb94ce73fd57986d80eadb7c3
docker: Error response from daemon: driver failed programming external connectivity on endpoint web (986e3397ec86265874cffc000483c9e749ba487401a41dda1dbbb10dca54c73a): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

该错误表示当前宿主机的端口 80 已经被占用。