Docker 入门

基本概念

Docker 包括三个基本概念

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)
    理解了这三个概念,就理解了 Docker 的整个生命周期。

镜像(Image) 和容器(Container) 的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository)是一个集中存储,分发镜像的服务。分为公开服务和私有服务,最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。私有服务的话可以自行搭建。

安装

安装我这里就不作介绍了,直接安装官网方式进行安装就可以。地址

获取公开镜像

1
2
docker pull ubuntu  // 获取最新的 ubuntu 镜像
docker pull ubuntu:14.04 // 也可以在后面跟版本号

列出本地镜像

使用 docker images 命令,列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间。

1
2
3
4
5
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 40960efd7b8f 2 months ago 108MB
ubuntu 16.04 dd6f76d9cc90 2 months ago 122MB
alpine latest 053cde6e8953 2 months ago 3.97MB

运行

镜像下载完毕之后,我们可以将镜像启动生成一个容器,容器运行之后,将可以看到一个真正的 ubuntu 环境运行。

1
docker run -it --rm ubuntu bash  // 命令进入到 ubuntu 的 bash

Dockerfile 构建镜像

  1. 创建一个 demo 目录,在其目录下面创建 Dockerfile 文件,在文件中输入:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FROM ubuntu
    MAINTAINER XXX
    RUN apt-get update && \
    apt-get -y install nginx && \
    echo "root:123456" | chpasswd
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]


    # FROM ubuntu 表示以 ubuntu 这个镜像为基准,在其基础上面构建其他的应用。
    # RUN 后面就是执行的 `shell` 命令,为了避免构建多层镜像,这里只是一条命令。
    # EXPOSE 80 开放 80 端口
    # CMD 在容器中执行命令
  2. 文件编辑完之后,在 Dockerfile 文件目录执行下面命令构建镜像。

    1
    docker bulid -t ubuntu_nginx .
  3. 构建完之后,可以运行镜像生成容器。

    1
    2
    3
    4
    docker run -p 80:80 --name mynginx

    # -p 80:80:将容器的80端口映射到主机的80端口
    # --name mynginx:将容器命名为mynginx
  4. 查看容器启动情况

    1
    docker ps
  5. 测试 nginx
    可以打开浏览器对 nginx 服务器进行测试。

©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息

Happy Coding

坚持原创技术分享,您的支持将鼓励我继续创作!
Flyertutor WeChat Pay

WeChat Pay

Flyertutor Alipay

Alipay