编程开发 购物 网址 游戏 小说 歌词 地图 快照 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 开发 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 云计算 -> Docker基础笔记 -> 正文阅读
 

[云计算]Docker基础笔记[第1页]

镜像操作
Images(镜像)是由若干layer(层)组成
获取镜像
docker pull name[:TAG] name为镜像名称,tag是镜像标签,默认取latest
镜像信息 docker images 列出本机已有镜像的基本信息 docker inspect name|ID 查看镜像的详细信息,包括作者、适应架构、各层的数字摘要等 docker history name|id 查看镜像的历史信息

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sonatype/nexus3     latest              cb646f169074        3 weeks ago         485MB
busybox             latest              54511612f1c4        5 weeks ago         1.13MB

更多用法# man docker-images
为镜像添加标签
docker tag source_name:[tag] target_name:[tag] ,例如:

# docker tag sonatype/nexus3:latest alleyz/nuexs3:latest
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
alleyz/nuexs3       latest              cb646f169074        3 weeks ago         485MB
sonatype/nexus3     latest              cb646f169074        3 weeks ago         485MB
busybox             latest              54511612f1c4        5 weeks ago         1.13MB

搜索镜像
默认会搜索官方仓库中的镜像
docker search --filter=stars=10 --limit 12 --no-trunc nexus
说明:搜索 stars大于等于10以上的,返回结果最多12条,太长的名称不需截断,包含nexus关键字的镜像
删除镜像 根据名称删除:docker rmi name,当镜像只剩下一个的时候,会删除镜像的所有层 根据ID删除:docker rmi id,如果镜像有其他的标签,会出现:Error response from daemon: conflict: unable to delete 54511612f1c4 (must be forced) - image is referenced in multiple repositories,此时采用docker rmi -f id 则会将此镜像以及此镜像的所有标签删除 创建镜像
docker中创建镜像的方法主要有3种:
基于已有镜像的容器创建
docker commit -m "its remark” -a “alleyz” -p CONTAINER_ID REPO:TAG`, -m添加备注信息,-a添加作者,-p容器暂停
基于本地模板方法导入
使用OPENVZ创建模板 cat temp.tar.gz | docker import - ubuntu:14.40
基于Dockerfile文件创建
// TODO 大章后续详解
存出和载入镜像 将镜像存储为本地文件: docker save -o busybox.tar.gz busybox 将本地文件导入镜像库: docker load < busybox.tar.gz 上传镜像
docker push alleyz/test:latest
容器操作 创建容器
docker create [OPTIONS] --name alias IMG_NAME
启动容器
docker start container_id
创建并启动
docker run
终止容器
docker stop [-t=10] container_id 先发送SIGTERM信号,等待超过10秒后,发送SIGKILL信号
进入容器
首先我们创建一个后台运行的容器:docker run -itd --name busy busybox
- attach
docker attach busy 退出的时候:先按ctrl p再按ctrl q,如果使用ctrl d或者exit将会终止容器运行
- exec
docker exec -it busy /bin/sh 此处/bin/sh可以是任意命令
- nsenter 通过此方法需要获取容器的PID
PID = $(docker inspect --format "{{ .State.Pid }}" busy)针对具有bash的容器
nsenter --target $PID --mount --uts --ipc --pid
删除容器
docker [-f | -l | -v] rm CONTAINER_ID ,-f终止并删除容器,-l删除容器的连接但保留容器,-v删除容器的数据卷
导出容器
docker export -o busy-c.tar busy 或者 docker export busy > busy-c1.tar
导入容器
docker import busy-c.tar alleyz/bbusy 导入的容器是一个镜像,此方式会丢弃历史信息与元数据信息
数据管理 数据卷(Data Volumes)
可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,它的特性:
数据卷可以在容器之间共享和重用 对数据卷内容的修改会马上生效 对数据卷的更新不会影响镜像 只有没有容器使用的卷才可以被卸载
在容器内创建一个数据卷
docker run -d -p 15000:5000 --name docker-repo -v /home/docker/repo registry,此时-v指令就会在容器中创建一个数据卷/home/docker/repo
挂载一个主机目录作为数据卷
docker run -d -p 15000:5000 --name docker-repo -v /home/docker/repo:/home/docker/repo registry
数据卷容器(Data Volume Container)
如果要在多个容器之间共享一些持续更新的数据,可以使用数据卷容器:
1. 创建数据卷容器

docker run -itd --name data -v /data  busybox

创建两个容器使用data的数据卷

docker run -itd --name data2 --volumes-from data  busybox

利用数据卷容器迁移数据
1. 数据备份:docker run --volumes-from data -v /home/backup:/backup --name worker busybox tar cvf /backup/back.tar /data
2. 数据恢复:docker run --volumes-from data -v /home/backup:/backup busybox tar xvf /backup/back.tar
端口映射 docker run -d -P --name docker-registry registry -P 本地随机端口映射容器中开放的网络端口 docker run -d -p 15000:5000 --name docker-registry registry -p 15000:5000 使用本地15000端口映射容器5000端口,可以有多个-p docker run -d -p 10.8.177.22:15000:5000 --name docker-registry registry -p 10.8.177.22:15000:5000 使用IP:PORT映射容器端口
docker run -d -p 10.8.177.22::5000 --name docker-registry registry -p 10.8.177.22::5000 指定IP随机端口映射容器端口
docker port docker-registry 5000 查看端口映射关系
容器互联 docker run -d -P --link CONTAINER_NAME:ALIAS registry 使用--link name:alias使容器不用暴露端口到本地即可被访问,在这个过程中会添加环境变量和配置父容器的/etc/hosts 使用Dockerfile创建镜像
Dockerfile一般分为4部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令,支持#开头的注释
Dockerfile支持的指令 FROM
指定创建镜像的基础镜像,如果本地不存在,则默认去仓库下载指定镜像。 在一个文件中,第一条指令必须是FROM,该指令可以多次出现,但是每个镜像只能一次。 FROM image:tag 或者 FROM image@digest
MAINTAINER
指定维护者信息,MAINTAINER image_author@mail.com
RUN
运行指定指令,格式为RUN command或者RUN ["executable","param1","param2"],前者在shell中运行,后者使用exec执行。 每条RUN指令将在当前镜像的基础上执行,并提交为新的镜像,当命令较长时可以使用\换行
CMD
用来指定启动容器时默认执行的命令,格式有三种:
CMD ["executable", "param1", "param2"] 使用exec执行,推荐方式 CMD command param1 param2 使用/bin/sh执行 CMD ["param1", "param2"] 提供给ENTRYPOINT的默认参数
一个文件只能有一个CMD指令,如果启动容器时手动指定了运行命令,则会覆盖此值
LABEL
生成镜像的元数据标签信息,如LABEL k=v k1=v1 k2=v2
EXPOSE
声明镜像内服务所监听的端口,EXPOSE port port port
ENV
指定环境变量,在镜像生成过程中会被后续的RUN指令使用,在镜像启动的容器中也存在,格式ENV k=v 或者ENV k v
ADD
ADD src dest 将复制指定src路径下的内容到容器的dest目录下,src可以是一个相对路径、绝对路径、也可以是URL,如果为tar文件则会被自动解压至dest路径下, dest可能是绝对路径,也可能是WORKDIR的相对路径
COPY
COPY src dest 复制本地主机的src(相对路径或绝对路径的文件、文件夹)下的内容到镜像的dest下,当src为本地目录时,推荐使用此指令
ENTRYPOINT
指定镜像的默认入口命令,该入口命令会在启动容器时作为根命令执行,所有传入值作为该命令的参数,每个Dockerfile文件中只有最后一个ENTRYPOINT指令生效。ENTRYPOINT ["executable", "param"]或者ENTRYPOINT command param
VOLUME
创建一个数据卷挂载点:VOLUME ["/data"]可以从本地或者其他容器挂载数据卷
USER
指定运行容器时的用户名和UID,当程序不需要管理员权限时,可使用RUN创建用户。要临时获取管理员权限可使用sudo
WORKER
为RUN CMD ENTRYPOINT指令配置工作目录,格式为WORKER /path/workdir,如果多个worker的后续是相对路径,则此相对路径基于之前的worker路径

WORKER /a
WORKER b
WORKER c
RUN pwd  
# 此时目录为/a/b/c

ARG
指定镜像内使用的一些参数(版本号信息等),执行docker build时需要传入。 ARG <NAME>[=default value]
ONBUILD
配置当所创建的镜像作为其他镜像的基础镜像时,所执行的创建操作指令,ONBUILD INSTRUCTION
SHELL
指定其他命令使用shell时的默认shell类型,SHELL ["executable", "param"]
HEALTHCHECK
配置容器健康检查,HEALTHCHECK NONE不检查;HEALTHCHECK [OPTIONS] CMD command,options取值有三种:
--interval=DURATION 默认30秒,多久检查一次 --timeout=DURATION 每次检查超时时间,默认30秒 --retries=N 失败尝试次数,默认为3 创建镜像
通过docker build命令来创建镜像,docker build [options] path, 使用-t可指定生成镜像的标签
参考资料:《Docker技术入门与实战》
阅读全文
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文已收录于以下专栏:

发表评论
HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其它
相关文章推荐
Docker笔记-基础
DockerDocker 概念Docker 镜像镜像只是一个模板,可以通过模板创建docker容器Docker 容器容器从镜像创建运行实例,可以启动,开始,停止,删除。同时又相互隔离 镜像是只读的,...
simonpatrick 2015-05-17 18:22 87 Docker笔记 基础命令
Docker笔记 基础命令 在CentOS 7中安装Docker # 添加yum源 sudo tee /etc/yum.repos.d/docker.repo -'EOF' [dockerrepo]...
chenfei3306 2016-08-07 21:21 64 docker学习笔记09:网络功能基础
Docker允许通过外部访问容器互联的方式来提供网络服务。 -P 标记 使用-P标记,docker会随机映射49000~49900中的任意一个端口到内部容器开放的网络端口docker run -d...
xlemonok 2017-05-24 16:53 266 Docker学习笔记:Docker 基础用法和命令帮助
一、Docker的基础用法 Docker镜像首页,包括官方镜像和其它公开镜像 因为国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,可以使用 docker.cn 镜像,镜像...
jek123456 2017-02-20 16:00 3058

Docker 学习笔记
2016-10-25 16:03 263KB 下载

非常详细的 Docker 学习笔记
2017-03-10 23:56 252KB 下载
docker学习之基础篇四
docker学习基础
dengwt123 2017-05-07 22:32 82

Docker基础平台环境安装
2017-02-12 17:59 65KB 下载

Docker 基础记录
2017-07-20 17:23 16KB 下载
Docker 基础知识记录
2016-7-10 初版释出Docker的主要优点: 轻量级资源使用:容器在进程级别隔离并使用宿主机的内核,而不需要虚拟化整个操作系统。 可移植性:一个容器应用所需要的依赖都在容器中,这就让它可以...
zxf_668899 2017-01-20 23:23 312
u010209217 +关注
原创 16 粉丝 3 喜欢 0 码云  
他的最新文章 更多文章
Class装载系统 JVM常用参数 JVM学习笔记 Nginx高级配置之反向代理
在线课程

【免费】搜狗机器翻译技术分享
讲师:

深度学习在推荐领域的应用和实践
讲师:吴岸城
热门文章 快速搭建hadoop+hbase分布式集群
218
kylin2.0 安装与 Spark2.1 集成
140
Nginx基础配置详解
125
Nginx高级配置之反向代理
87
Centos7下安装Cloudera Manager以及Hadoop
66
0
  云计算 最新文章
NLP06-Gensim源码简析[字典]
pandas中使用三元表达式
Docker基础笔记
大数据工程师必备技能图谱
ServiceComb中的数据最终一致性方案
63. Unique Paths II
手把手教你建github技术博客by hexo
hadoop datanode结点不启动导致dfs控制台显
spark on yarn架构简介
mapreduce程序本地模式调试
上一篇文章      下一篇文章      查看所有文章
加:2017-10-30 04:04:25  更:2017-10-30 04:04:58 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年6日历
2018-6-21 8:42:56
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库