Docker 学习 | 基础命令
- 基本概念定义
- 基本组成
- 客户端/守护进程
- C/S架构
- 本地/服务器
- 镜像
- 容器基石
- 只读文件系统
- 联合加载(union mount)
- 容器
- 通过镜像启动
- 执行
- 写时复制
- 仓库
- 公有
- docker hub
- 私有
- 公有
- 相关技术简介
- 依赖的Linux内核特性
- Namespace 命名空间 LXC Kernel Namespace
- 封装 -> 代码隔离->资源隔离
- PID 进程隔离 独立进程表
- NET 管理网络接口 network info
- IPC 进程通信 额外信息标记
- MNT 挂载点
- UTS 隔离内核和版本标识 hostname domain
- Users 用户
- Cgroup 控制组 分配资源 资源限制 CPU 内存
- 资源限制
- 优先级设定
- 资源计量
- 资源控制
- chroot 隔离根文件系统
- 客户端/守护进程
- 基本组成
- 基本操作
- 启动容器 docker run Image
- 交互 docker run -i -t Image /bin/bash
- -name
- 查看进程 docker ps/top [-a ] / [-l]
- 详细信息 docker inspect +id /+ name
- 交互 docker run -i -t Image /bin/bash
- 启动停止容器 docker start -i name/id
- 删除容器 docker rm 删除已停止容器
- 启动容器 docker run Image
- 守护形式运行容器(长期运行)
- 退出crtl +p ctrl+q
- 重新进去 sudo docker attach +id/name
- 后台执行 docker run -d
- 查看容器日志(内部运行情况) docker logs [-f一直跟踪] [-t 加时间] [--tail最新] 名字
- 查看运行中容器进程 docker top + id/name
- 在运行容器(已启动)中启动运行新进程 docker exec [-d] [-i] [-name]
- 停止运行中的容器 docker stop 发结束信号停止 /kill 直接快速停止
- 部署静态网站
- 容器端口映射 run -P 全部 /-p 指定
- 安装nginx vim
- 停止后会重新分配IP
- 查看和删除镜像
- docker info 查看信息,包含存储驱动
- 列出镜像 docker images -a(所有中间层+其他镜像)/-f 过滤条件/--no-trunc(完整的ID) /-q 只查看唯一ID
- 仓库:REPOSITORY 仓库 (一系列关联镜像集合) 组件仓库 REGISTRY(一个一个独立镜像) 标签TAG +仓库名字 =独立镜像
- docker rmi -f 强制/ --no-prune 保留父镜像
- 获取推送镜像
- docker search --no-trune/-s 3
- docker login 应该先登录
- docker pull -a / --registry-mirror
- 1. /etc/default/docker 修改 2 . 添加 DOCKER_OPTS ="-registry-mirror = http://MIRROR-ADDR"
- http://www.daocloud.io 获取镜像连接(更改2)
- docker push
- 构建镜像
- docker commit -a 作者/ -m 提交信息/-p 暂停
- docker build -t 标签 -q 不显示中间过程 利用Dockerfile创建
- Docker c/s模式
- Remote API CS 可远程
- 三种连接方式 1.unix :///var/rundocker.sock (默认) 2.tcp://host:port 3.fd://socketfd
- 命令
- 服务连接相关 sdocker -d -D - H(host)
- Remote API相关
- 网络设置相关 --ip = 0.0.0.0
- 仓库相关
- 存储相关
- 启动配置文件 /etc/defaut/docker 修改后 要重启服务
- 远程访问
- 修改/etc/defaut/docker 添加 - H tcp://0.0.0.0:2375
- export DOCKER_HOST = "tcp://0.0.0.0:2375" 可修改远程 export DOCKER_HOST =" " 置空
- -H 选项可多个添加
- Dockerfile 指令
- FROM 基础镜像
- MAINTAINER 作者信息
- RUN 运行命令
- shell模式 RUN <command> exec模式 RUN ["executable", "param1", "param2"] 运行其他shell
- EXPOSE <> 多个端口 不能自动需再添加
- CMD (指定命令,参数,容器运行时默认行为 类似RUN, 会被覆盖) ENTERPOINT(跟CMD一样 )
- ADD <src> ...<dest> (包含解压缩功能) COPY<src>..<dest>(普通复制推荐) VOLUME ["/data"] 共享数据
- WORKDIR /绝对路径 设置工作目录 ENV <key><value> <key>=<value> 环境变量
- USER daemon 用户/用户组/默认root ONBUILD [INSTRUCTION] 镜像触发器
- Dockfile 构建过程
- 运行基础镜像 执行指令 提交 删除中间层容器(不删镜像)
- 可以通过调试中间层镜像
- 自动构建缓存 添加--no-cache 不构建缓存 ,刷新 | ENC REFRESH_DATE 2019-05-01修改时间就可刷新
- docker hsitory 查看镜像构建过程
- 网络连接
- 网络基础
- Docker0 提供虚拟网桥 可以设置IP地址 相当于虚拟网卡
- 建立虚拟网侨 brctl addbr br0 && ifconfig br0 192.168.2.100 netmask 255.255.255.0
- 修改默认配置 -b=br0 重启容器
- 互联
- 默认允许所有容器互联
- --icc =ture 全部可ping 通,同一个虚拟网桥,IP不可靠连接(ip变化)
- --link = cct1:webtest(别名) 环境变量env自动更新webtest,hosts也自动更新 wetest
- 拒绝连接
- --icc =false更改默认配置 全部拒绝
- 特定连接
- --icc =false --iptables=true --link 只允许link配置的容器连接
- 默认允许所有容器互联
- 连接外部网络
- --ip-forword=true 允许流量转发 查看 sysctl net.ipv4.all.forwarding
- iptables linux包过滤防火墙 系统
- 表table nat fitter mango
- 链chain INPUT FORWARD
- 规则rule ACCEPT REJRECT DRON
- 允许端口映射访问
- ‘限制IP访问容器
- 网络基础
- 数据管理
- 数据卷
- 独立于UFS 数据共享 不会因容器关闭而消失 放在host主机中
- docker run -it -v ~/datavalume:/data ubuntu /bin/bash
- 添加权限 docker run -it -v ~/datavalume:/data:ro ubuntu /bin/bas
- dockerfile 生成同名的数据卷是不同地址,故不能共享数据
- 数据卷容器
- 挂载数据卷容器 docker run -it --volume-from 镜像名字
- 及时删除了基类数据卷容器 ,不受影响, 数据卷不受容器影响
- 数据备份还原,迁移
- docker run -it --volume-from image -v $(pwd)/data:/data: wr ubuntu tar cvf /data/dvt5.tar /data/datavolume1 (压缩,解压缩类似)
- 数据卷
- 跨主机连接
- 使用网桥
- 两主机 管理工具bridge-utils 同一网段
- 修改 /etc/network/interfaces | address network gateway bridge_port( eth0)
- 修改 /etc/default/docker |-b = br0 --fixed-cidr
- 优点 配置简单,不依赖 缺点:同网段 划分网段,不易实现和管理
- Open vSwitch 通常使用 apache2.0许可 虚拟开源多层交换机 gre 通用路由协议,隧道技术
- openvswitch - switch |网桥工具 bridge-utils
- 建立ovs网桥 |添加gre连接 |配置虚拟网桥 OVS接口
- weave 开源项目
- 安装启动weave 增加执行权限|weave launch 192.168.59.103(第一台电脑ip)
- c2id=$(weave run 192.168.2/24(分配ip地址) -it Ubuntu /bin/bash)
- 使用网桥
Docker 学习 | 基础命令的更多相关文章
- Docker 学习之命令篇
Docker 学习之命令篇 1. docker images //镜像列表 2. docker ps –a //所有运行过的容器 3. docker ps –l 最后运行的容器 4. docker ...
- 【03】循序渐进学 docker:基础命令
写在前面的话 之前谈了啥是 docker 和怎么安装 docker,这里就谈谈 docker 命令的使用,当然,这里的使用可能只是局限于 docker 的增删查改. 另外需要注意的是,为了图片的美观, ...
- docker入门 基础命令 docker安装
docker入门 在学一门新知识的时候,超哥喜欢提问,why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes ...
- docker学习-常用命令2
三.容器管理命令3.1 Docker commit 命令,从容器创建一个新的镜像.OPTIONS说明: -a :提交的镜像作者: -c :使用Dockerfile指令来创建镜像: -m :提交时的说明 ...
- docker学习-常用命令1
一.容器管理 1.1 Docker start/stop/restart/rm 命令实例:启动|停止|重启|删除 容器mydb01# docker start|stop|restart|rm mydb ...
- Docker - 常用基础命令
Docker命令分布 帮助信息 查看docker基本信息:docker info 查看docker版本信息:docker version 查看docker的所有命令及选项:docker --help ...
- (三)、Docker常用基础命令
1.Docker 帮助命令 帮助命令: docker version 查看版本 docker info 查询docker详细信息 docker --help 查看命令帮助 2.Docker 镜像命令 ...
- Docker系列——Docker安装&基础命令
Docker 概述 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...
- Docker 学习之命令详解
1. docker version docker version 显示 Docker 版本信息. 2. docker info docker info 显示 Docker 系统信息,包括镜像和容器数. ...
随机推荐
- KafkaStream简介
Kafka Streams 1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基于一 ...
- Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)
文章较长建议先收藏再看 拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.屏幕触摸坐标修改为横屏 3.开 ...
- Java工程师学习指南(入门篇)
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Selenium+PhantomJS使用时报错原因
运行下面代码:'''PhantomJS运用''' from selenium import webdriverimport time # 通过keys模拟键盘from selenium.webdriv ...
- 代码审计-Thinkphp3框架EXP表达式SQL注入
最近看java框架源码也是看的有点头疼,好多还要复习熟悉 还有好多事没做...慢慢熬. 网上好像还没有特别详细的分析 我来误人子弟吧. 0x01 tp3 中的exp表达式 查询表达式的使用格式: $m ...
- 实验吧之【拐弯抹角】(url伪静态)
题目地址:http://ctf5.shiyanbar.com/indirection/ 打开后给了源码 <?php // code by SEC@USTC echo '<html>& ...
- NodeJS操作MongoDB数据库
一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...
- prototype与 _proto__的关系
prototype与 __ proto__ 都是在这个过程中催生的产物,我们一会儿马上讨论,在这之...做对象即可,那javascript种究竟是通过什么来明确继承关系的呢. 一.构造函数: 构造函数 ...
- Cocos2d-x 学习笔记(11.1) MoveBy MoveTo
1. MoveBy MoveTo 两方法都是对node的平移,MoveBy是相对当前位置的移动.MoveTo是By的子类,是移动到世界坐标位置. 1.1 成员变量和create方法 MoveBy的主要 ...
- 就改了get,却不让我set?——Java内省机制的神奇行为举止一例
[相关类库]org.apache.commons.beanutils.BeanUtils,提供对Java反射和自省API的包装,其中底层使用到了Java的内省方法.[内省的一般应用形式]通过类Intr ...