防火墙规则——

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(启动容器,使用刚创建的网桥)

docker容器管理及网络管理的更多相关文章

  1. docker 容器管理常用命令

    Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: create Create a new container 创建一个容器: ...

  2. docker 容器管理上

    Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: docker start container_id //启动容器后,可以使用 ...

  3. Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例

    搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html Docker-compose 多个Docker容器管理:以MYSQL ...

  4. Docker系列三:Docker容器管理

    Docker容器管理 1. 单一容器管理 1) 容器的启动 $ docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis: ...

  5. docker容器管理-含静态Ip(10)

    docker run命令详解 docker run -t #表示分配一个伪终端 -i #表示让容器的标准输入打开,不跟这个参数容器启不来 -d #后台运行 -P #dockerfile中EXPOSE ...

  6. Docker学习第二天(Docker容器管理)

    简介 emmmm Docker 容器管理 推荐文章:容器技术概述 run里面的子选项 1.使用run命令创建容器 docker container run -it ubuntu /bin/bash / ...

  7. 四、docker容器管理

    一.docker容器管理 1.1 容器查看-ps命令 显示本地容器列表,但是默认不显示关闭的容器,只显示运行中的容器,除非加上命令选项 -a 用法:docker ps [-a 显示所有容器,默认只显示 ...

  8. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  9. Docker 容器管理

    单一容器管理 容器的标识符 每个容器被创建后都会分配一个CONTAINER_ID作为容器的唯一标识符,后续的启动.停止等操作都通过CONTAINER_ID来完成的. CONTAINER_ID很难记忆, ...

随机推荐

  1. win10系统怎么关闭自动更新

    现在win10已经很普遍了,对于win10 现在还不是很完美,比如自动更新功能,现在的选项中没有关闭自动更新的选项了,这是一个bug,微软要强制更新.我就忍受不了自动更新,会拉取网络,影响我们的上网体 ...

  2. BugkuCTF WEB

    web2 打开链接,一大堆表情 查看源代码 得到 flag 文件上传测试 打开链接 选择 1 个 jpg 文件进行上传,用 burp 抓包改包 将 php 改为 jpg,发包 得到 flag 计算器 ...

  3. 第十二章 Java内存模型与线程(待续)

    ············

  4. Java面向对象-递归

    Java面向对象-递归 递归,就是程序调用自身,我们讲的是方法递归调用,也就是在方法里自己调用自己: 我们给出一个案例,求阶乘  1*2*3*...*(n-1)*n 我们用非递归和递归方式分别实现下, ...

  5. MySQL备份还原之二使用mysqldump

    1 场景描述: create table gyj_t1(id int,name varchar(10)); insert into gyj_t1 values(1,'AAAAA'); commit; ...

  6. Collision Detection

    [Collision Detection] Collision Detection是Rigidbody中的一个属性.所以显然Collision Detection指定的类型只在Rigidbody之间才 ...

  7. 【HDU6026】Deleting Edges

    题意 有一个n个节点的无向图,结点编号从0-n-1,每条边的长度时1to9的一个正整数.现在要删除一些边(或者不删),使得到的新图满足下面两个要求. 1.新图是一颗树有n-1条边2.对于每个结点v(0 ...

  8. jps, jinfo命令

    jps主要用来输出JVM中运行的进程状态信息. -q 不输出类名.Jar名和传入main方法的参数 -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数 ...

  9. servlet01 项目demo、servlet生命周期

    1 环境说明 jdk: 1.8 tomcat: 8.0 2 项目demo 2.1 新建一个动态的web项目   2.2 新建一个servlet类 该类必须继承 HttpServlet 技巧01:Htt ...

  10. 数字图像处理实验(14):PROJECT 06-01,Web-Safe Colors 标签: 图像处理MATLAB 2017-05-27 20:45 116人阅读

    实验要求: Objective: To know what are Web-safe colors, how to generate the RGB components for a given jp ...