防火墙规则——

INPUT 主要用于主机防火墙,设置规则屏蔽处理进入本机的数据包
示例:禁止10.180.100.141这个机器访问我本机的web服务
iptables -t filter -A INPUT -s 10.180.100.141 -p tcp --dport 80 -j DROP

FORWARD 主要用于网络防火墙,设置规则处理穿过本机的数据包
示例:禁止10.180.100.141的机器穿过防火墙访问后端的机器
iptables -t filter -A FORWARD -s 10.180.100.141 -j DROP

nat防火墙,需要打开内核ip转发(systel -w net.ipv4.ip_forward=1)

POSTROUTING 源地址伪装
示例:通过伪装10.180.100.0网段的机器上网,首先防火墙本机可以访问互联网
iptables -t nat -A POSTROUTING -s 10.180.100.0 -j SNAT --to-source 防火墙外网ip

PERROUTING 目的地址转换
示例:所有防火墙10022端口的请求都转发给后端的10.180.100.141的22端口
iptables -t nat -A PERROUTING -p tcp --dport 10022 -j DNAT --to-destination 10.180.100.141:22

docker 容器管理
docker怎么连上容器?可以映射端口,比如我在容器创建一个apache和mysql,我们就把容器的端口映射到宿主机的80端口和3306端口。

实例
[root@x ~]# docker run -p 222:22 -itd centos(使用宿主机的222端口,映射容器的22端口)
[root@x ~]# ssh 192.168.230.168:222(然后输入密码就可以链接到容器)

自定义镜像与仓库

使用commit创建新镜像文件——
使用镜像启动容器,在该容器基础上修改,另存为另一个镜像
docker run itd centos
docker ps
docker exec CONTAINER ID(在这里进行增删改查,安装卸载软件等等)
docker commit CONTAINER ID name:latest(默认卷边就是latest)
docker images

示例:
[root@x ~]# docker run -itd centos(运行一个容器)
[root@x ~]# docker ps(查看容器)
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4576e60e1b56        centos      
[root@x ~]# docker exec -it 4576e60e1b56 bash(进入容器)
[root@4576e60e1b56 /]# yum -y install mysql..........(安装软件,修改配置文件等)
[root@x ~]# docker commit 4576e60e1b56 mycentos(另存为修改后的镜像名字为mycentos)
sha256:10bb17e15bd2b7ce98fc0dd8db1c6c1729da8fe39e0c0faed201fd8eaa4b488d
[root@x ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mycentos            latest              10bb17e15bd2        44 seconds ago      197.2 MB
docker.io/nginx     latest              7f70b30f2cc6        2 days ago          108.7 MB

使用Dockerfile文件创建新镜像文件
Dockerfile语法格式——
FROM:基础镜像
MAINTAINER:镜像创建者信息
EXPOSE:开放的端口
ENV:环境变量
ADD:复制文件到镜像
RUN:制作镜像时执行的命令,可以有多个
WORKDIR:定义容器默认的工作目录
CMD:启动容器时执行的命令,仅可以有一条cmd

工作流程——
mkdir xx(创建一个文件夹),
vim Dockerfile(创建Dockerfile文件)
docker xx -t imagename Dockerfile

示例:
[root@x ~]# mkdir build(创建一个build,继续创建一个脚本,内容随意并赋予执行权限)
[root@x build]# ls
Dockerfile  xx.sh
[root@x build]# cat Dockerfile
FROM mycentos(使用自定义的镜像)
MAINTAINER xxsec 1520029989@qq.com(作者信息)
ENV NAME=xxsec
ENV environment=xxsec
WORKDIR /var/www/html
ADD xx.sh /root/xx.sh
RUN mkdir /dockerfile
RUN echo "xxsec" > dockerfile/file.txt
RUN yum -y install httpd
RUN echo "xxsec" > /var/www/html/index.html
EXPOSE 80
CMD ["httpd", "-DFOREGROUND"]
[root@x build]# ls
Dockerfile  xx.sh
[root@x build]# docker build -t xxsec .(.在当前目录执行,)
[root@x ~]# docker images(查看生成的镜像)
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
xxsec              <none>              7acc6beb85a2        About a minute ago   197.2 MB

自定义仓库——
registry基本概念
共享镜像的一台服务器(镜像化的一台服务器)

自定义私有仓库
[root@xxsec ~] docker pull docker.io/registry
[root@xxsec ~] vim /usr/lib/systemd/system/docker.service
               ExecStart=/usr/bin/.dockerd --insecure-registry=ip:5000
[root@xxsec ~] systemctl daemon-reload
[root@xxsec ~] systemctl restart docker
[root@xxsec ~] docker run -id -p 5000:5000 registry
[root@xxsec ~] docker tar 镜像 镜像容器ip:5000/镜像:latest(打标签)
[root@xxsec ~] docker push 镜像容器ip:5000/镜像:latest(上传)
进入registry容器查看
[root@xxsec ~] cat /etc/docker/registry/config.yml

验证:
使用远程镜像启动容器
[root@xxsec ~] docker run -it 镜像容器ip:5000/镜像名

查看远程仓库上有什么镜像
http://容器镜像ip:5000/v2/_catalog

查看远程镜像的tag
http://容器镜像ip:5000/v2/<name>/tags/list

持久化存储——
存储卷:卷的概念docker容器不保存任何数据,重要的数据使用外部卷存储(存储持久化),容器可以挂在真实机目录或共享存储为卷
共享存储:一台共享存储服务器可以提供给所有的Docker主机使用,共享存储服务器(NAS,SAN,DAS等),如使用NFS创建共享存储服务器,客户端挂载NFS共享,并最终映射到容器中。

存储卷示例;
主机卷的映射,将真实机目录挂在到容器中提供持久性存储
[root@x ~]# docker run -it -v /var/data:/data centos bash

共享存储示例:
服务器端:[root@xxsec ~] yum -y install nfs-utils
          [root@xxsec ~] vim /etc/exports
          [root@xxsec ~] systemctl start nfs
docker主机(注意是宿主机mount)mount挂载共享,运行容器时,使用-v选项映射磁盘到容器中

docker网络管理
查看默认docker创建的网络模型
[root@xxsec ~] docker network list
[root@xxsec ~] ip a s docker0
[root@xxsec ~] brctl show docker0(启动容器会绑定该网桥)

新建docker网络模型
[root@xxsec ~] docker network create --driver bridge xx01
[root@xxsec ~] docker network list
[root@xxsec ~] ip a s
[root@xxsec ~] docker network inspect xx01

创建虚拟网桥——
[root@xxsec ~] cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
... ...
NAME=eth0
DEVICE=eth0
BRIDGE=br0
NOBOOT=yes
IPADDR=192.168.230.168

[root@xxsec ~] cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
... ...
NAME=eth0
DEVICE=eth0
BRIDGE=br0
NOBOOT=yes
IPADDR=192.168.230.168
[root@xxsec ~] brctl show(显示网桥)

docker自定义网桥
[root@xxsec ~] docker network create --subnet=192.168.230.176/24 xx01(创建网桥)
[root@xxsec ~] docker run --network=bridge|host|none
[root@xxsec ~] docker run --network=xx01 -id nginx(启动容器,使用刚创建的网桥)

转载于:https://www.cnblogs.com/Hydraxx/p/8642116.html

docker容器管理及网络管理相关推荐

  1. 美团点评Docker容器管理平台

    本文是郑坤根据第14期美团点评技术沙龙"你不知道的美团云"演讲内容整理而成,已发表在<程序员>杂志2017年1月刊. 美团点评容器平台简介 本文介绍美团点评的Docke ...

  2. Docker容器管理总结

    Docker容器管理总结 一.Docker容器理解 1.Docker的核心概念 2.容器的运行状态 二.Dockerfile理解 三.容器使用及操作 1.进入容器空间内 2.后台运行容器 3.前台运行 ...

  3. 【转】八个基本的 Docker 容器管理命令

    八个基本的 Docker 容器管理命令 https://www.iteblog.com/archives/2382.html?from=like 在本文中,我将介绍八个基本的 Docker 容器命令, ...

  4. docker容器管理 php,基于Docker的PHP开发环境

    [编者的话]本文作者是Geoffrey,他是一个PHP的Web开发者,喜欢DevOps和Docker.本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发 ...

  5. Docker容器管理

    创建容器命令格式: Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...] Usage: docker run [OPTIONS] IMAGE ...

  6. 8个基本的Docker容器管理命令

    在这篇文章中,我们将学习 8 个基本的 Docker 容器命令,它们操控着 Docker 容器的基本活动,例如运行run.列举list.停止stop.查看历史纪录logs.删除delete 等等. 利 ...

  7. 八个基本的 Docker 容器管理命令

    本文英文原文:https://kerneltalks.com/virtualization/8-basic-docker-container-management-commands/ 中文翻译:htt ...

  8. 陌陌基于Kubernetes和Docker容器管理平台的架构实践

    为什么选择使用Kubernetes? 在使用Kubernetes之前,陌陌在应用发布和运行环境方面遇到的具体问题,如下: 应用发布时间很长,主要是因为发布过程中需要做隔离.恢复等动作,还需要登录查看实 ...

  9. Docker容器管理平台Humpback进阶-私有仓库

    Docker私有仓库 在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,docker 会去哪儿查找并下载镜像呢? 它实际上是从 registry.hub.doc ...

最新文章

  1. 从内存分配角度分析c和java里的static 关键字.
  2. python测试udp端口_Linux系统的ECS实例中TCP/UDP端口测试及验证方法说明
  3. 老姚浅谈:怎么学JavaScript?
  4. 【USACO Feb 2014】Cow Decathlon
  5. 带你掌握二进制SCA检测工具的短板及应对措施
  6. java二次雷达编码地址
  7. stm32CubeMx lwip + freeRTOS
  8. 西南科技大学OJ题 交换二叉树的孩子结点1105
  9. Discuz论坛验证码破解
  10. cad的dwg文件转html文件,多种方式将CAD文件转化为JPG图片
  11. 解决 | 点击任务栏没有反应
  12. ​LeetCode刷题实战317:离建筑物最近的距离
  13. Google mediapipe 人脸识别应用
  14. 用Python3为您随机产生一个密码,是不是很高级嘞?
  15. 《Google Android开发入门与实战随书视频》
  16. 语音情感识别研究现状
  17. SDNU1129.多度人脉
  18. 不同页面 共享cookie及localStorage
  19. 正确打开adams软件_adams软件在工程机械系统仿真中的应用案例.ppt
  20. 2018.09.25软件更新公告

热门文章

  1. 吸顶那个叫什么_吸顶式无线ap优缺点(无线吸顶ap是什么)
  2. php ngx_http_auth_basic_module,nginx认证模块ngx_http_auth_basic_module
  3. java面试题 Arraylist 与 LinkedList比较
  4. [sql]匹配标题中出现最多关键字的结果
  5. 云起智慧中心连接华为_LifeSmart云起全系列产品接入华为HiLink生态系统
  6. swagger文档配置
  7. GDAL读取S-57海图数据中文属性值乱码问题解决(续)
  8. 开源GIS(六)——openlayers中overlay强大功能
  9. JavaWeb——jdbc与dbcp数据库连接
  10. Github应用最广泛的开源项目