您的位置:首页 > 运维架构 > Docker

[笔记] docker入门篇1

2016-08-24 16:50 246 查看

1.docker的概念

docker是一个依赖于linux内核的软件。同时是一个典型的C/S架构的软件,分为Docker Client和Docker Server。熟悉github的同学可以和git做一下对比。

1.介绍两个至关重要的概念(镜像,容器)

1.镜像,容器

一般书上会拿面向对象编程语言的例子来解释,镜像相当于这类语言中的类,而容器则是new出来的对象。我是这样理解的,动手装过操作系统的同学都知道iso文件吧,这个文件也叫作镜像文件,我们说的docker镜像就相当于这个iso文件。将这个iso文件执行起来(就是安装操作系统的过程),在内存中建立的模型就是容器了。

2.镜像的两种获取方式(提到的命令在下一篇中会详细的讲解,有印象即可)

1.Dockerfile

这种方式是自己写Dockerfile脚本,同shell script类似,但是要简单得多。下文会介绍脚本命令。写完Docker脚本后,可以运行
docker build -t tag dockerfile-path(Dockerfile文件路径)
,例如:
docker build -t icngor/lamp:2.0 ·
(注意最后的点,表示Dockerfile就在当前目录)

2.从dockerHub或第三方网站下载

dockerHub是docker官方提供的镜像下载中心,第三方网站一般是从这个网站同步的,也可以是由公司内部搭建的。使用docker pull 镜像名称:版本,例如:
docker pull icngor/lamp:2.0


通过上面两种方式获得了image(镜像)。接下来使用
docker images
查看镜像



2.Dockerfile命令

* FROM centos:centos6

要构建一个新的镜像,首先需要继承一个已有的镜像。这条指令就是在centos:centos6的基础上进行构建。执行docker build时会下载centos:centos6镜像。

* MAINTAINER

作者信息

* ENV <key> <value>

设置一个系统的环境变量

* COPY <src> <dest>,ADD <src> <dest>

都是将文件复制到容器,ADD与COPY相比多了两个功能,下载URL和解压.

* EXPOSE

暴露容器中的端口号

* ENTERYPOINT,CMD,RUN

三者的相同点都可以运行shell命令,下面对比一下三者的不同点:
* RUN是在building image时会运行的指令, 在Dockerfile中可以写多条RUN指令.
* CMD和ENTRYPOINT则是在运行container (容器)时会运行的指令, 都只能写一条, 如果写了多条, 则最后一条生效.
* CMD和ENTRYPOINT的区别是:
CMD在运行时会被command覆盖, ENTRYPOINT不会被运行时的command覆盖
如果要覆盖ENTRYPOINT, 那么可以在docker run运行时输入 --entrypoint="....".

* ONBUILD

在子镜像构建过程中执行的一些通用操作

1.Dockerfile实例编写

docker的安装【很简单,就没写,百度一下有很多哦】

两个重要的概念和Dockerfile

docker常用命令总结

常用命令

docker build -t 命名镜像 指定Dockerfile文件的位置
docker images
docker run -it -d -p -P -v -e --name
docker ps -a
docker exec -it tag /bin/bash

docker run -it --rm 容器推出口,删除容器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: