栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker实战--容器构建(入门)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker实战--容器构建(入门)

本文介绍简单Docker镜像的构建方式。构建Docker镜像有两种方式,这里介绍的是使用Dockerfile构建镜像。

1.创建Dockerfile文件
$ mkdir static_web
$ cd static_web/
# 创建一个Dockerfile
$ touch Dockerfile
2.添加Dockerfile的内容
$ cat Dockerfile 
# version 0.1
# 基础镜像
FROM ubuntu:14.04
MAINTAINER James Turnbull "james@example.com"

# 构造镜像时运行的指令
RUN apt-get update
RUN apt-get install -y nginx
RUN mkdir -p /var/www/html

RUN echo 'Hi, I am Container' 
	>/usr/share/nginx/html/index.html

# 映射的端口
EXPOSE 80
  • FROM

    这个选项说明镜像基于的基础版本。

  • RUN

    该项会通过/bin/sh -c这样的格式来运行shell命令。

  • EXPOSE

    指定对外公开的端口,可以有多个。但容器不会主动开放该端口,需要在docker run时指定。

3.构建镜像

通过以下命令来构建镜像。

$ docker build . -t="hover/static_web"

可以为镜像打上一个标签,默认是latest,我这里打上一个v1的标签:

$ docker build . -t="hover/static_web:v1"

构建完成后,查看是否镜像列表:

$ docker images
REPOSITORY         TAG       IMAGE ID       CREATED              SIZE
hover/static_web   latest    1ef13e142a24   About a minute ago   219MB
hover/static_web   v1        1ef13e142a24   About a minute ago   219MB
ubuntu             latest    38af2b009885   10 days ago          69.2MB
busybox            latest    3c277069c6ae   2 weeks ago          1.41MB

注意:若构建过程中失败,则会构建不成功。会打印出详细错误信息。

4.是否要使用Dockerfile来构建缓存

在构建镜像时我们发现,第一次构建镜像比较慢,而后续再次构建镜像时会非常快。这是由于Docker在构建镜像时使用了缓存。

若不想使用以前的缓存,可以添加:–no-cache选项

$ docker build --no-cache . -t="hover/static_web:v1"
5.查看构建过程

可以通过history命令来查看镜像的构建过程。

$ docker history 1ef13e142a24
6.启动构建好的容器

通过以上步骤,我们构建成功了一个nginx的镜像,现在我们启动该nginx镜像,并作为web服务器运行。

$ docker run -d -p 80 --name static_web hover/static_web  nginx -g "daemon off;"
80d4b6306b270ee5028ee08bb4c08a6ad6a4e877ad0ae00bda067eb5a9257077

查看一个容器的运行信息:

$ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                   NAMES
80d4b6306b27   hover/static_web   "nginx -g 'daemon of…"   2 minutes ago   Up 2 minutes   0.0.0.0:55168->80/tcp   static_web

可见,容器的端口80映射到了宿主主机的55168这个端口上。我们可以访问这个端口验证一下:

$ curl localhost:55168
Hi, I am Container

或则打开一个浏览器,并输入:localhost:55168,可以看到网页上显示出了:Hi, I am Container。

这说明我们的容器已经运行成功了。

7.Dockerfile的指令

详细信息可以参考官方的文档:Dockerfile reference。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/859551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号