关键词:
- 基本概念定义
- 基本组成
- 客户端/守护进程
- 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学习|基础命令
...载(unionmount)容器通过镜像启动执行写时复制仓库公有dockerhub私有相关技术简介依赖的Linux内核特性Namespace命名空间LXCKernelNamespace封装->代码隔离->资源隔离PID进程隔离独立进程表NET管理网络接口networkinfoIPC进程通信额外信息... 查看详情
dockers学习基础镜像管理与命令
1.从镜像仓库拉取镜像dockerpull[OPTIONS]NAME[:TAG|@DIGEST]dockerpullcentos:7.6.18102.镜像仓库搜索镜像dockersearchcentos3.查看本地镜像列表dockerimagelsdockerimagels--no-trunc 查看镜像列表显示每个镜像的完整ID,imageid默认为64位,通常只显示前12位... 查看详情
docker基础命令
学习docker中有很多基础的命令需要记,因自己记性不好所以记录下来方便记不起时查看!1.systemctlstartdocker ----启动docker后台服务2.dockerrun[NAME] ----运行某一镜像,若本地没有该镜像会前往仓库查找下载,默认最新版本3.dockerr... 查看详情
docker基础命令(代码片段)
Docker常用命令学习网站:https://yeasy.gitbook.io/docker_practice/查看所有镜像:“dockerimages”删除imagedockerrmiIMAGEID若上步无法删除,则需要先删除运行过该images的container,先利用“dockerps-a”查看退出的container;再利用“dockerrmCONTAINERID... 查看详情
docker入门基础篇(代码片段)
查看docker教学视频,请点击《狂神说java》:https://www.bilibili.com/video/BV1og4y1q7M4?p=1记得投币三连呀~~Docker学习Docker概述Docker安装Docker命令镜像命令容器命令操作命令......Docker镜像容器数据卷DockerFileDocker网络原理Idea整合DockerDockerCompose... 查看详情
docker基础学习三(代码片段)
一、Dockerfile学习由一系列的参数和命令构成的脚本。这些命令应用于基础镜像并最终创建一个新的镜像。基础镜像就是操作系统级别的镜像。常用命令FROMimage_name:tag定义了使用哪个基础镜像启动构建流程MAINTAINERuser_name声明镜像... 查看详情
docker学习总结八
使用Dockerfile创建镜像一般Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的指令1.指令说明指令说明FROM指定所创建镜像的基础镜像MAINTAINER指定维护者信息RUN运行命令CMD指定启动容器时默认执行的命... 查看详情
docker的基础命令
前言最近在学习docker,以下是我整理的一些docker的基础命令,欢迎小伙伴们在评论补充! curl-fsSLhttps://get.docker.com/|sh 安装 yum-yinstalldocker安装(版本较老)systemctlstartdocker启动dockersystemctlenabledocker开机自启动命令systemctld... 查看详情
docker基础学习笔记(代码片段)
....通过命令使用数据卷查看数据卷匿名挂载具名挂载3.通过Dockerfile使用数据卷数据卷容器二、DockerFile1.什么是dockerfile?2.DockerFile构建过程3.DockerFile的指令4.实战测试三、综合实战:制作Tomcat镜像1.准备压缩包2.编写Dockerfile... 查看详情
kaldi语音识别基础教程(代码片段)
...一个研究和使用的平台。Kaldi环境搭建本文主要通过使用Docker和Nvidia-docker构建Ubuntu环境对Kaldi进行搭建。Docker针对的是无GPU的环境,Nvidia-docker针对的是需要使用GPU计算的环境,如果读者机器上存在GPU计算资源,请使用Nvidia-docker... 查看详情
docker入门教程命令
Docker入门教程(二)命令【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能。在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,... 查看详情
docker学习笔记docker基础操作实,docker仓库数据卷,网络基础学习
Docker学习笔记【3】Docker仓库实操,创建私有仓库,实操数据卷、数据卷容器,实操网络基础 ---------高级网络配置和部分实战案例学习=============================================================Docker学习笔记【1】Docker相关概念,基本操作... 查看详情
docker学习dockerfile(代码片段)
一什么是Dockerfile: Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile 从FROM命令开始,... 查看详情
docker常用命令
最近开始学习docker,从基础开始,慢慢积累。systemctlenabledocker使docker容器可用systemctlstartdocker启动容器systemctlstopdocker停止容器servicedockerstatus查看容器状态dockerimages查看已有镜像命令dockerrun-dit-P--name名称imageid启动镜像-d表示后台-i... 查看详情
docker学习笔记-安装(代码片段)
Docker学习笔记基础概念/名词解释准备工作安装启动Docker服务Docker常用命令卸载参考资料基础概念/名词解释名词说明image镜像docker封装好的一个模板,里面是一个可运行的服务,以及运行此服务所需要的依赖环境。container... 查看详情
docker学习笔记-安装(代码片段)
Docker学习笔记基础概念/名词解释准备工作安装启动Docker服务Docker常用命令卸载参考资料基础概念/名词解释名词说明image镜像docker封装好的一个模板,里面是一个可运行的服务,以及运行此服务所需要的依赖环境。container... 查看详情
docker学习:docker基础容器构建(代码片段)
...ENAME=jammyDISTRIB_DESCRIPTION="Ubuntu22.04.1LTS"1.2.安装dockersudoaptinstalldocker#创建/etc/docker/daemon.jon文件,内容如下cat/etc/docker/daemon.json"registry-mirrors":["https://registry.docker-cn.com"]#启动dockersudosystemctlstartdocker#停止docke... 查看详情
004docker学习__dockerfile_build命令构建docker镜像(代码片段)
Dockerfile介绍 Dockerfile是一个文本文件,记录了镜像构建的所有步骤。 第一个Dockerfile,构建镜像的过程详解 用Dockerfile创建centos-vim,就是编写Dockerfile文件,在基础镜像centos:centos7.4.1708上安装vim,镜像构建的重要部分[root... 查看详情