• Docker 入门 4 容器端口映射 和 Nginx 演示部署


    前言

    • 容器端口映射

      docker run [-P] [-p] [(ip:hostPort:)containerPort] [-i] [-t] [image] [/bin/bash...]
      
    • Nginx 部署

      docker port [id/容器名]
      

    设置容器的端口映射

    docker run [-P] [-p] [(ip:hostPort:)containerPort] [-i] [-t] [image] [/bin/bash...]
    
    • -P :--publish-all=true | false ,默认为 false ,为容器暴露的所有端口进行映射

      docker run -P -i -t ubuntu /bin/bash
      
    • -p :--publish=[] ,设置容器映射的端口

      • ContainerPort 只指定容器映射的端口,宿主机的端口随机映射

        docker run -p 80 -i -t ubuntu /bin/bash
        
      • HostPort:ContainerPort 同时指定宿主机和容器的端口映射,一一对应

        docker run -p 8080:80 -i -t ubuntu /bin/bash
        
      • IP::ContainerPort 指定ip和容器的端口,本地主机自动分配端口

        docker run -p 0.0.0.0::80 -i -t ubuntu /bin/bash
        
      • IP:HostPort:ContainerPort 同时指定ip、宿主机端口、容器端口

        docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
        
      • 还可以用 udp 标记来指定 UDP 端口。

        docker run -p 0.0.0.0:8080:80/udp -i -t ubuntu /bin/bash
        

    Nginx 演示部署

    创建映射80端口的交互式容器 “web”

    docker run -p 80 --name web -i -t ubuntu 
    

    安装 Nginx

    apt update
    apt install nginx
    
    • 在容器中每次下载新软件时,可能遇到下述问题,重新输入下载安装命令即可:

      E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
      

    创建静态页面

    • Nginx 默认静态页面,也可以自建静态页面

    运行 Nginx

    nginx
    

    查看 Nginx 进程是否开启

    docker port [id/容器名]
    

    示例:

    $ docker port web
    80/tcp -] 0.0.0.0:32768
    

    验证网站访问

    验证访问前需要知道容器的 IP 地址,docker inspect 命令查看容器信息,找到 IPAddress :

    $ docker inspect web
    
    "IPAddress": "172.17.0.2",
    

    验证网站访问有两种方式:

    • curl 获取网页

      curl http://127.0.0.1:32768
      
    • 浏览器访问

    可选选项

    修改 Nginx 配置文件

    vim /etc/nginx/sites-enabled/default
    

    重启容器后,重启 Nginx 服务

    使用容器进程命令:

    docker exec web nginx
    
  • 相关阅读:
    html5 audio vedio and video.js
    webpack的require是如何工作的?
    webpack HMR是如何工作的?
    vuejs code splitting with webpack 3种模式
    how webpack Hot Module Replacement works
    C# checkedlistbox 控件 有bug
    C# DataGridView 更改类型 重绘
    C# webapi
    C# 遍历控件名称
    C# 转json
  • 原文地址:https://www.cnblogs.com/Yogile/p/12508747.html
Copyright © 2020-2023  润新知