docker学习笔记(二)
来源:互联网 发布:淘宝账号解封成功案例 编辑:程序博客网 时间:2024/06/01 10:19
一.高级网络配置:
1.配置DNS: Docker 没有为每个容器专门定制镜像,它利用虚拟文件来挂载到容器的相关配置文件
使用mount 可以看到挂载信息
可以手动指定容器的配置
2.容器访问控制: 容器的访问控制主要通过Linux上的iptable防火墙进行管理和实现
容器访问外部网络: 先检查网络转发是否打开。
>sysctl net.ipv4.ip_forward
("1"代表打开,“0”代表关闭,需要手动配置开启,在启动docker时设定 --ip_forward = true
容器之间访问: 需要两方面的支持,一方面是网络拓扑结构是否已经互联,二是本地系统的防火墙软件-iptables是否允许通过
二.安全介绍
1.内核名字空间: 当用docker run 启动一个容器时,在后台Docker 为容器创建了一个独立的名字空间和控制集合。容器都有自己底油的网络栈,这就意味着它们不能访问其他容器的socket或者接口,当指定公共端口或者使用Links来连接2个容器时,容器就可以相互通信了
2.控制组: 负责实现资源的审计和限制
3.docker 服务端的防护
将容器的root 用户映射到本地主机上的非root用户,减轻容器和主机之间因权限提升而引起的安全问题
允许Docker 服务器端在非root权限下允许安全可靠的子进程来代理执行需要特权权限的操作
4.内核能力机制: 是Linux内核一个强大的特性,可以提供细粒度的权限访问控制
三.Dockerfile
1.基本结构: 由一行行命令语句组成,并且以“#”标识注释行
2.dockerfile主要有四个部分: 基础镜像信息; 维护者信息; 镜像操作指令; 容器启动时执行指令
3. 指令:
FROM指令: FROM <image> or FROM <image>:<tag>
第一条指令必须为FROM ,标明基础镜像信息,并且在dockerfile中创建多个镜像时使用多个FROM
MAINTAINER指令: MAINTAINER <name>
标明维护者信息
RUN指令: RUN <command>
每条RUN指令会在当前镜像基础上执行,并且提交为新的镜像,当命令行太长时,使用“\”(右斜杠)来表示换行
CMD指令:
指定启动容器时执行的命令,每个dockerfile只能有一条CMD命令,有多条的话会只执行最后一条
EXPOSE指令: EXPOSE <port>
告诉docker服务器暴露的端口号,供互联网系统使用
ENV指令: ENV <key> <value>
指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持
ADD指令: ADD <src> <dest>
将复制指定的<src>到容器中的<dest>
COPY指令: COPY <src> <dest>
复制本地主机的<src> 到容器中<dest>
ENTRYPOINT指令:
配置容器启动后执行的命令并不被docker run 提供的参数覆盖。每个dockerfile文件中只能有一个ENTRYPOINT指令,若有多条那么只执行最后一条
VOLUME指令: VOLUME ['/data']
创建一个可以从本地主机或其他的容器挂载的挂载点,一般用来存放数据库和需要保持的数据库
USER指令: USER deamon
指定运行容器时的用户名或UID
WORKDIR指令: WORKDIR /path/to/workdir
为后面的RUN,CMD,ENTRYPOINT指定配置工作目录
例子:
WORKDIR /a #绝对路径
WORKDIR b #相对路径
RUN pwd
执行结果为: /a/b
ONBUILD 指令:
配置当前所创建的镜像作为其他新创建镜像的基础镜像
3.创建镜像
指令为: docker bulid -t [选项] 路径
这是在网上找到一个教程案例,我跟着代码敲执行的结果:
创建一个空目录 test_nginx
然后创建两个文件,一个是Dockerfile,一个是nginx.repo文件
>vim Dockerfile
>vim nginx.repo
创建镜像 docker build -t ***
查看已经创建的镜像
绑定端口,并查看绑定情况
通过浏览器访问
成功!
- Docker学习笔记(二)
- Docker学习笔记(二)
- docker学习笔记(二)
- docker学习笔记(二):Hello World
- Docker学习笔记(二)-镜像
- Docker学习笔记(二)CentOS6.5部署Docker
- Docker Swarm学习笔记(二)
- Docker Swarm学习笔记(二)
- (二) 安装docker------学习笔记
- docker学习笔记(二)导入导出镜像
- Docker学习笔记(二)安装与卸载
- Docker学习(二)Docker架构
- Docker 自修笔记(二)
- docker学习笔记-----grpc 填坑记(二)
- Docker 入门学习笔记二:常用命令
- Docker 学习笔记(二)--Docker客户端和守护进程
- Docker学习笔记二:安装Docker并管理镜像
- Docker学习笔记二:安装Docker并管理镜像
- String存放在堆中还是栈中
- PyQt(一)
- Activiti数据库表结构(表详细版) 转载
- c语言单链表的基本操作
- 两个mysql排锁实例
- docker学习笔记(二)
- shiro讲解之 Realm
- 通过json字符串传对象集合,在js中访问对象的属性
- 欢迎使用CSDN-markdown编辑器
- bootstrap打开模态modal窗口引起页面抖动闪黑
- Uva 133 (implement)
- python应用系列教程——python使用socket创建tcp服务器和客户端
- Python多线程
- Android笔记(十)Android O SystemUI启动流程