• docker-02端口映射


    docker-02端口映射
    
    docker 仅在run的时候提供了-p参数来增加端口映射,这无法满足我们后续安装应用的需求,就需要增补端口映射,
    
    特别提醒:为了格式正确,建议在执行run命令的时候,指定一个端口映射,后续增加的时候进行复制黏贴
    
    1)停止docker 容器:
    docker stop 容器id/容器名称
    
    2)停止docker
    systemctl stop docker
    特别注意:一定要停止docker,否则修改了的配置文件会被还原
    
    3)进入目录,修改以下文件:
    /var/lib/docker/containers/[容器id]/hostconfig.json  
    /var/lib/docker/containers/[容器id]/config.v2.json 
    
    第一处修改:
    hostconfig.json 在根节点下 加入以下配置:
        "PortBindings": {
            "8080/tcp": [{
                "HostIp": "",
                "HostPort": "8089"
            }]
        },
    
    第二处修改:
    config.v2.json 在Config节点下的ExposedPorts节点(如果没有可以添加ExposedPorts节点)下添加以下配置:
    "8080/tcp": {}
    
    最终Config如下:
    "Config": {
            "Hostname": "e2040090cf57",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "8080/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],
            "Cmd": ["/bin/bash"],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20201204",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
    
    第三处修改:
    config.v2.json 在Config节点下的NetworkSettings节点的Ports节点加入以下配置:
                "8080/tcp": [{
                    "HostIp": "0.0.0.0",
                    "HostPort": "8089"
                }]
    最终NetworkSettings如下:
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "7657e7557a4fc7faec2644e4b6e4dd89aa130b2d292cc79e8c5be11b45315e29",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "afcbb96c4ff2f8fcb46dcfc104d85975bf69aa281e4a8ef77ae08ff02af279a6",
                    "EndpointID": "ae8c89d80cdfc6ac3c617be9595e723dba9f17464f08cfc6a29ea7b3d828947e",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null,
                    "IPAMOperational": false
                }
            },
            "Service": null,
            "Ports": {
                "8080/tcp": [{
                    "HostIp": "0.0.0.0",
                    "HostPort": "8089"
                }]
            },
            "SandboxKey": "/var/run/docker/netns/7657e7557a4f",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "IsAnonymousEndpoint": false,
            "HasSwarmEndpoint": false
        },
    
    5)重启docker
    service docker restart
    或
    systemctl start docker
    
    6)启动容器进行测试
  • 相关阅读:
    安卓开发中Theme.AppCompat.Light的解决方法
    一个监听事件监听多个按钮
    onCreate中的savedInstanceState有何具体作用
    [转]Bundle对象的使用
    【转】Android详细的对话框AlertDialog.Builder使用方法
    实现按两次返回键退出应用(利用安卓按后退键引发的函数)
    [转]解决eclipse连接不到genymotion的问题
    随笔记录九 进程和计划任务任务管理
    linux引导过程和服务控制
    上机作业三 账号管理
  • 原文地址:https://www.cnblogs.com/ShouWangYiXin/p/14433951.html
Copyright © 2020-2023  润新知