阿里云服务器上安装docker服务,并对外提供服务nginx服务

  • 自己手动安装docker:在自己安装的docker里面,内置了nginx;并对外宿主机暴露80端口;
    • docker pull richarvey/nginx-php-fpm:1.8.0
    • docker run -d -v /www/smallgo/:/var/www/html/smallgo/ —name=smallgo -p 80 —net nginx-proxy richarvey/nginx-php-fpm:1.8.0
  • 以上操作后,外网还是无法访问,检查资料得知是原因是:Docker映射端口时仅有IPv6无法到IPv4;找到一个临时的解决办法是(https://juejin.im/post/5d8cc0f451882509443bb0ae;此方法需要重启机器,请谨慎使用;并且会造成需要使用tcp6的软件无法使用);最终放弃该方法;
  • 后来找到了一个专业的代理镜像;https://github.com/jwilder/nginx-proxy (readme里面介绍了各种用法),操作步骤如下:
    • docker pull richarvey/nginx-php-fpm:1.8.0
    • docker run —name travel —net nginx-proxy -e VIRTUAL_HOST=api.test.com -d -p 80 richarvey/nginx-php-fpm:1.8.0
    • docker run -d -p 80:80 —name nginx-proxy —net nginx-proxy -e ENABLE_IPV6=true -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
  • 测试:访问 api.test.com 成功;