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设置一个系统的环境变量* COPY ,ADD 都是将文件复制到容器,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 容器推出口,删除容器