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 系统信息,包括镜像和容器数. ...
随机推荐
- 500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手. 帮助蹲厕族.YP族.饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右 ...
- Node.js入门教程 第五篇 (Express框架)
Express框架 Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了 ...
- markdown下载、安装、破解、汉化与常用语法
markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 一.markdown下载 markdown破解版下载地址: http://www.pc6.com/ ...
- JAVA保留小数点位数
/** * java 如何保留指定位数的小数 * @author Administrator * */ public class Test04 { public static void main(St ...
- SpringBoot项目配置Tomcat和JVM参数
设置Tomcat端口号和连接数等 使用application.properties配置文件有一些参数无法设置,所以推荐创建一个类文件来配置,如下: package com.qipai.springbe ...
- opencv::图像矩(Image Moments)
矩的概念介绍 1.几何矩 2.中心距 3.中心归一化距 4.图像中心Center(x0, y0) 计算矩 moments( InputArray array, // 输入数据 bool binaryI ...
- libevent::事件
/***************************************************************** 函数功能: 创建事件集 ********************* ...
- 微信企业号开发入门(回调模式)java
最近在开发微信企业号,刚接触时云里雾里的,在摸索过程中终于清晰了一点. 刚开始我以为订阅号.服务号.企业号的接口差不多,就一直用订阅号的教程来入门,后来才发现差的挺多的. 首先,微信企业号不像订阅号和 ...
- 扩展阿里p3c实现自定义代码规范检查
前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...
- MySQL常用sql语句-----数据表的查询操作
常用的sql语句如下,应对工作足以 1.查询指定字段 select c_id,c_age,c_name from t_student; select c_id as 编号,c_name as 姓名,c ...