频道栏目
首页 > 资讯 > 云计算 > 正文

Docker基础学习

17-07-22        来源:[db:作者]  
收藏   我要投稿

Docker基础学习。

1、Docker概念(what)
Docker是liunx系统平台上的轻量级虚拟化容器引擎。
2、Docker作用(why)
开发人员使用Docker来消除与同事的代码协作时的“我机器上的工作”问题。Docker自动执行设置和配置开发环境的重复任务,以便开发人员可以专注于重要的事情:构建出优秀的软件。
运营商使用Docker在独立的容器中并行运行和管理应用程序,以获得更好的计算密度。
企业使用Docker构建灵活的软件传送管道,可以更快,更安全地运行新功能。(官网翻译)
3、如何构建docker容器
镜像构建:
Dockerfile 指令:
From:基础镜像
Maintainer:作者信息
Run:在镜像中运行的命令
Add:具有复制与解压的功能。将文件拷贝到container的文件系统对应的路径。
Copy:没有解压功能的复制
Export:暴露端口命令
Cmd:容器启动运行的命令,会被docker run命令覆盖。
Entrypoint:不会被docker run 命令中的指令覆盖,如果想要覆盖此命令,可以使用docker run –entrypoint指令覆盖。
Volume:可以将本地文件夹或者其他container的文件夹挂载到container中。
Workdir:工作目录,切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效。
Env:环境变量指令
User:指定运行容器的用户。
Onbuild:ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行。
4、如何使用Docker(how)
Docker 客户端命令:
http://blog.csdn.net/we_shell/article/details/38368137
4.1对image的操作(search、pull、images、rmi、history)
# 检索image
$docker search image_name
# 下载image
$docker pull image_name
# 列出镜像列表; -a, –all=false Show all images; –no-trunc=false Don’t truncate output; -q, –quiet=false Only show numeric IDs
$docker images
# 删除一个或者多个镜像; -f, –force=false Force; –no-prune=false Do not delete untagged parents
$docker rmi image_name
# 显示一个镜像的历史; –no-trunc=false Don’t truncate output; -q, –quiet=false Only show numeric IDs
$docker history image_name
4.2 对容器的操作(rm、stop、start、kill、logs、diff、top、cp、restart、attach)
# 删除所有容器
$docker rm docker ps -a -q
# 删除单个容器; -f, –force=false; -l, –link=false Remove the specified link and not the underlying container; -v, –volumes=false Remove the volumes associated to the container
$docker rm Name/ID
# 停止、启动、杀死一个容器
dockerstopName/IDdocker start Name/ID
$docker kill Name/ID
# 从一个容器中取日志; -f, –follow=false Follow log output; -t, –timestamps=false Show timestamps
$docker logs Name/ID
# 列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的
$docker diff Name/ID
# 显示一个运行的容器里面的进程信息
$docker top Name/ID
# 从容器里面拷贝文件/目录到本地一个路径
dockercpName:/containerpathtopathdocker cp ID:/container_path to_path
# 重启一个正在运行的容器; -t, –time=10 Number of seconds to try to stop for before killing the container, Default=10
$docker restart Name/ID
# 附加到一个运行的容器上面; –no-stdin=false Do not attach stdin; –sig-proxy=true Proxify all received signal to the process
$docker attach ID
5、Docker registry 仓库(where)
http://www.cnblogs.com/lienhua34/p/4922130.html
共有镜像库:Docker?hub是一个用于管理公共镜像的地方,可以pull下我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有些镜像比较大,因此建议在本地构建私有镜像库。
私有仓库: Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。
官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。Tag为latest的registry镜像是0.9.1版本的,我们直接采用2.1.1版本

相关TAG标签
上一篇:Mysql相关笔记1
下一篇:pinpoint安装部署详解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站