Docker入门笔记

  • 该系列博文主要是介绍Docker的一些基本概念。
  • 学习笔记,仅此而已
  • 后续...。

1、什么是Docker?

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)bare metalOpenStack 集群和其他的基础应用平台。

2、Docker的组成

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。

3、Docker在容器中安装新的程序

  • 在使用docker run 镜像名称 要执行的命令时,对于要执行的命令,有的可能存在需要交互的情况,即需要用户输入命令来进行确认,例如apt-get,但在docker环境中是无法响应这种交互的,故常常需要加上些参数,例如apt-get -y,来省略交互过程。

4、保存对容器的修改

docker commit id 容器

  • 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。
  • 对于commit过程中id,需要先使用docker ps -l命令获得安装完ping命令之后的容器id。`
  • 无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(非常类似git里面的版本号)
  • 执行完后,会返回新版本镜像的id号。通过使用dockr images命令可查看最近的镜像版本
  • 提交前需要停止容器

5、创建镜像

  • 当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
    • 1.从已经创建的容器中更新镜像,并且提交这个镜像
    • 2.使用 Dockerfile 指令来创建一个新的镜像

6、构建镜像

  • 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
runoob@runoob:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "[email protected]"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D
  • 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
  • 第一条FROM,指定使用哪个镜像源
  • RUN 指令告诉docker在镜像内执行命令,安装了什么。然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。