docker 创建容器时指定容器ip的实现示例

Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。

在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。

我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。

查看网络模式

docker network ls

创建一个新的bridge网络

docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet

查看网络信息

docker network inspect mynet

创建容器并指定容器ip

docker run -e TZ="Asia/Shanghai" --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init

运行容器

docker exec -it hadoop01 /bin/bash

centos最小化安装没有ifconfig命令,可通过yum进行安装

yum install -y net-tools

安装ssh服务

yum install -y openssh-server

yum install -y openssh-clients

systemctl start sshd.service

新增非root用户

useradd brock

passwd brock

通过本地客户端访问(通过创建容器时指定端口或配置独立ip)

docker run -e TZ="Asia/Shanghai" -p 6001:22 --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init

route -p add 172.18.12.0 MASK 255.255.255.0 10.0.75.2

(0)

相关推荐

  • Docker每次启动容器,IP及hosts指定的操作

    前言 每次在使用Docker启动Hadoop集群的时候,都需要重新绑定下网卡,固定IP,同时修改/etc/hosts文件,非常麻烦,于是想探寻下原因及优化. 一.原因 /etc/hosts, /etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部.因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中. 为什么重启后修改内容不存在了?原因是:

  • Docker为网络bridge模式指定容器ip的方法

    前言 众所周知bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace.设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上.下面来看看Docker为网络bridge模式指定容器ip的方法. 实现方法 如果只是简单创建一个bridge模式的网络是无法给容器指定ip的 [root@vultrvpn conf.d]# docker network create --driver bridge wordpress_net ad1ff3d972

  • Docker 容器指定自定义网段的固定IP/静态IP地址

    Docker容器指定自定义网段的固定IP/静态IP地址 第一步:创建自定义网络 备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段 docker network create --subnet=172.172.0.0/16 docker-ice 注:docker-ice为自定义网桥的名字,可自己任意取名. 第二步:在你自定义的网段选取任意IP地址作为你要启动的container的静态IP地址 备注:这里在第二步中创建的网段中选取了172.172.0.10作为静态IP地址.这

  • docker 创建容器时指定容器ip的实现示例

    Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定. 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的. 我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可. 查看网络模式 docker network ls 创建一个新的bridge网络 docker network create --driver bridge --subnet=172.18.12.0/16 --gatewa

  • Java在创建文件时指定编码的实现方法

    目录 一.问题分析 二.字符编码 三 .问题解决 前言:最近,学习了Java IO流的相关的知识,想通过读写文件的方式练习和巩固所学知识.在使用File类创建文件时,突然想到,我该如何指定文件使用的编码呢? 进而想到,应该如何查看一个文件的编码呢? 一.问题分析 先去互联网上查找答案,结果如下: FileInputStream fis=new FileInputStream("xxxx.txt"): OutputStreamWriter osw=new OutputStreamWrit

  • 通过Docker创建CentOS容器的实现步骤

    目录 前言 创建桥接网络,方便容器间通信 通过CentOS 7镜像创建容器 连接容器 容器间互相访问 参考链接 前言 先安装Docker,使用文内的脚本可以快速创建CentOS 7.8虚拟系统集群,并通过SSH(Secure Shell)远程工具连接. 创建桥接网络,方便容器间通信 指令格式为docker network create <网络名称 >. docker network create test-network 列出Docker下所有网络可以看到test-network. docke

  • 详解Docker创建Mysql容器并通过命令行连接到容器

    拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker run --name mysql-master -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-slave1 -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-

  • Docker如何安全地进入到容器内部

    目录 前言 1. 容器运行 自动重启的容器 自定义名称的容器 开启端口的容器 与宿主机共享目录的容器 2. 进入容器 2.1 容器的三种状态 2.2 docker attach与docker exec 前言 镜像是构建容器的蓝图,Docker 以镜像为模板,构建出容器. 容器在镜像的基础上被构建,也在镜像的基础上运行,容器依赖于镜像. 本文将对 容器的运行 及相关内容进行详细讲解. 1. 容器运行 在 Docker 官方网站可以查询与 Docker 相关的资料以及帮助手册,但是内容都是英文的,可

  • 如何通过DOCKER OVERLAY2目录名查找容器名和容器ID

    目录 通过DOCKER OVERLAY2目录名查找容器名和容器ID DOCKER入门 Docker基础 docker简介 基本概念 利用DockerFile定制镜像 Dockerfile指令详解 保存镜像 总结 通过DOCKER OVERLAY2目录名查找容器名和容器ID 有时候经常会有个别容器占用磁盘空间特别大,这个时候就需要通过docker overlay2 目录名查找对应容器名: 1.首先进入到 /var/lib/docker/overlay2 目录下,查看谁占用的较多 du -s ./*

  • mysql如何创建数据库并指定字符集

    目录 mysql创建数据库并指定字符集 mysql创建数据库时指定编码字符集utf8mb4 方法一:MySQL 命令 方法二:修改/etc/my.cnf 文件 总结 mysql创建数据库并指定字符集 mysql创建数据库并指定字符集,创建数据库 并指定字符集. 命令: CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 创建用户 CREATE USER 'username'@

  • docker如何在外部指定参数变量

    这篇文章主要介绍了docker如何在外部指定参数变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Dockerfile: FROM frolvlad/alpine-oraclejre8:slim VOLUME /tmp ADD app.jar /app.jar #COPY agent/ /usr/local/skyagent/ WORKDIR /opt COPY docker-entrypoint.sh . ENV AP_ENV=$AP_EN

  • Docker创建容器时目录权限踩坑

    昨天写项目时需要用到Mysql的衍生版本percona, 就想用Doker来安装.结果踩了一晚上坑, 今早终于解决. 现记录在此. 这个坑原因是我对linux的目录权限问题不敏感导致的. 我的系统是ubuntu16.04, 运行 docker pull percona 拉取镜像时一切正常. 拉取完后,输入 docker images查看所有镜像, 显示正常: 然后我创建容器,命令为(执行时不要有换行): docker create --name percona -v /data/mysql-da

随机推荐