Docker 如何分配宿主机网段 IP

 更新时间:2017年05月13日 14:22:25   作者:漠然  
本篇文章主要介绍了Docker 如何分配宿主机网段 IP,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

工作需要临时启动一个 gitlab,无奈 gitlab 需要 ssh 的 22 端口;而使用传统网桥方式映射端口则 clone 等都需要输入端口号,很麻烦;22 端口宿主机又有 sshd 监听;研究了下 docker 网络,记录一下如何分配宿主机网段 IP

创建 macvlan 网络

关于 Docker 网络模式这里不再细说;由于默认的网桥方式无法满足需要,所以需要创建一个 macvlan 网络

复制代码 代码如下:

docker network create -d macvlan  --subnet=172.16.0.0/19 --gateway=172.16.0.1 -o parent=eth0 gitlab-net

  1. --subnet: 指定网段(宿主机)
  2. --gateway: 指定网关(宿主机)
  3. parent: 注定父网卡(宿主机)

创建以后可以使用 docker network ls 查看

 ~ docker network ls
NETWORK ID     NAME          DRIVER       SCOPE
a4a2980c9165    agent_default      bridge       local        
a0f29102b413    bridge         bridge       local        
2f46dc70b763    gitlab-net       macvlan       local        
51bd6222530f    host          host        local        
7a14a09c3cfc    none          null        local

创建使用容器

接下来创建容器指定网络即可

复制代码 代码如下:

docker run --net=gitlab-net --ip=172.16.0.170  -dt --name test centos:7

--net 指定使用的网络,--ip 用于指定网段内 IP;启动后只需要在容器内启动程序测试即可

# 启动一个 nginx
yum install nginx
nginx

启动后在局域网内能直接通过 IP:80 访问,而且宿主机 80 不受影响

docker-compose 测试

docker-compose 示例如下

version: '2'
services:
 centos:
  image: centos:7
  restart: always
  command: /bin/bash -c "sleep 999999"
  networks:
   app_net:
    ipv4_address: 10.10.1.34
networks:
 app_net:
  driver: macvlan
  driver_opts:
   parent: enp3s0
  ipam:
   config:
   - subnet: 10.10.1.0/24
    gateway: 10.10.1.2
#    ip_range: 10.25.87.32/28

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Docker容器使用jenkins部署web项目(总结)

    Docker容器使用jenkins部署web项目(总结)

    这篇文章主要介绍了Docker容器使用jenkins部署web项目(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 使用Docker Compose 实现nginx负载均衡的方法步骤

    使用Docker Compose 实现nginx负载均衡的方法步骤

    这篇文章主要介绍了使用Docker Compose 实现nginx负载均衡的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 详解Docker创建支持ssh服务的容器和镜像

    详解Docker创建支持ssh服务的容器和镜像

    本篇文章主要介绍了详解Docker创建支持ssh服务的容器和镜像,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 一步步教你用docker部署postgreSQL数据库

    一步步教你用docker部署postgreSQL数据库

    这篇文章主要给大家介绍了关于如何使用docker部署postgreSQL数据库的相关资料,PostgreSQL是一款功能丰富的关系型数据库,类似于MySQL,它也是受欢迎程度非常高的,需要的朋友可以参考下
    2023-11-11
  • docker容器日志占满硬盘空间的问题解决

    docker容器日志占满硬盘空间的问题解决

    由于默认情况下,docker使用json-file类型的日志驱动,该日志驱动默认情况下,每个容器的日志会一直追加在文件名为 containerId-json.log文件中,因此在容器不重建的情况下,该日志文件会一直追加内容,直到占满整个服务器硬盘空间,本文就来介绍一下解决方法
    2023-09-09
  • dockerfile制作apache镜像的方法

    dockerfile制作apache镜像的方法

    这篇文章主要介绍了dockerfile制作apache镜像的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 如何使用Docker恢复Mysql8备份的Data数据

    如何使用Docker恢复Mysql8备份的Data数据

    这篇文章主要介绍了使用Docker恢复Mysql8备份的Data数据,下面小编给大家讲解下操作方法,对Docker恢复Mysql数据备份相关知识感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 详解使用Dockerfile创建带Apache服务的CentOS Docker镜像

    详解使用Dockerfile创建带Apache服务的CentOS Docker镜像

    本篇文章主要介绍了使用Dockerfile创建带Apache服务的CentOS Docker镜像,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Docker 实用技巧总结

    Docker 实用技巧总结

    这篇文章主要介绍了Docker 实用技巧总结的相关资料,需要的朋友可以参考下
    2016-10-10
  • 详解挂载运行的docker容器中如何挂载文件系统

    详解挂载运行的docker容器中如何挂载文件系统

    这篇文章主要给大家介绍了如何在挂载运行中的docker容器中挂载文件系统,文中通过一步步的实践过程介绍的很详细,相信对有需要的朋友们来说具有一定的参考借鉴价值,感兴趣的朋友们下面来一起看看吧。
    2016-12-12

最新评论