docker_Dockerfile构建镜像

来源:互联网 发布:谷歌拼音输入法 centos 编辑:程序博客网 时间:2024/06/05 10:06
  • 编写一个构建文件 Dockerfile,[Dockerfile 文件详解](#Dockerfile 文件详解)

    # 父镜像FROM ubuntu:16.04# 作者信息MAINTAINER Wilker <364105996@qq.com># update apt-get 的源,国内的网易镜像速度比较快RUN echo "\deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse\n\deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse\n\deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse\n\deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse\n\deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse\n\deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse\n\deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse\n\deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse\n\deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse\n\deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse\n\" > /etc/apt/sources.list# APT 自动安装 PHP 相关的依赖包,如需其他依赖包在此添加RUN apt-get update && \      apt-get install -y python \                     python-dev \                     python-pip  \  # 用完包管理器后安排打扫卫生可以显著的减少镜像大小  && apt-get clean \  && apt-get autoclean \  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # 配置默认放置 App 的目录RUN mkdir -p /app  WORKDIR /app  EXPOSE 80  CMD ["bash"]
  • 构建名为 my-python-base 的镜像: $ docker build -t my-python-base .

    wilker@ubuntu:~/Desktop/test_docker$ docker build -t my-python-base . # 注意别忘了这个 . 表示Dockerfile 文件在当前文件夹下Sending build context to Docker daemon  3.072kBStep 1/8 : FROM ubuntu:16.04---> d355ed3537e9Step 2/8 : MAINTAINER Wilker <364105996@qq.com>---> Using cache...Get:1 http://mirrors.163.com/ubuntu xenial InRelease [247 kB] # 使用的源是 163 的,apt 的速度杠杠的Get:2 http://mirrors.163.com/ubuntu xenial-security InRelease [102 kB]Get:3 http://mirrors.163.com/ubuntu xenial-updates InRelease [102 kB]...Step 8/8 : CMD bash---> Running in d24a7615778b---> 989afb411fcbRemoving intermediate container d24a7615778bSuccessfully built 989afb411fcbSuccessfully tagged my-python-base:latest # 至此就构建成功了
  • 查看新构建的镜像: $ docker images

    wilker@ubuntu:~/Desktop/test_docker$ docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEmy-python-base      latest              989afb411fcb        14 seconds ago      386MB
  • run一下这个镜像

    wilker@ubuntu:~/Desktop/test_docker$ docker run -i -t my-python-base /bin/bashroot@41aa1e81c242:/app# cd /root@41aa1e81c242:/# lsapp  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  varroot@41aa1e81c242:/# python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> print("hello wlrod")hello wlrod>>> exit()
    • root@41aa1e81c242 :表示是在 实例 id 为 41aa1e81c242 的 容器 中,以 root 用户运行着,可以使用另一个 终端看下运行中的容器 $ docker ps -a ,80端口连着这个 容器
    wilker@ubuntu:~/Desktop$ docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES41aa1e81c242        my-python-base      "/bin/bash"              4 seconds ago       Up 3 seconds                     80/tcp              distracted_lamarr
  • 退出这个镜像

    root@41aa1e81c242:/# exitexitwilker@ubuntu:~/Desktop/test_docker$ 

Dockerfile 文件详解

  • 参考资料:https://hujb2000.gitbooks.io/docker-flow-evolution/content/cn/basis/dockerfiledetail.html

参考资料

  • http://blog.csdn.net/u013246898/article/details/53032748
原创粉丝点击