Docker的Dockerfile

Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像。

1、对于开发人员:可以为开发团队提供一个完全一致的开发环境;

2、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;

3、对于运维人员:在部署时,可以实现应用的无缝移植。

1、常用命令

Dockerfile中使用频繁的命令

命令 作用
FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name 声明镜像的创建者
ENV key value 设置环境变量 (可以写多条)
RUN command 是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir 设置工作目录(一进容器就进这个目录)
# 举例:实际Dockerfile是什么样子的

# 文件名必须叫 Dockerfile

FROM python:3.6
MAINTAINER lqz
RUN pip install django==1.11.9 -i https://pypi.doubanio.com/simple
RUN mkdir /home/donner # 创建这个文件夹
WORKDIR /home # 进入容器后直接进入home目录
ADD a.tar # 等价于先copy a.tar再 tar a.tar解压

2、使用Dockerfile创建镜像

当你有了Dockerfile文件后,你就可以通过这个文件创建镜像了。

# 通过Dockerfile创建镜像。注意后边的空格和点,不要省略
docker build -t='镜像名' . [root@alicentos ~/test]# docker build -t='django1.11.9' .
Sending build context to Docker daemon 2.048kB
Step 1/5 : FROM python:3.6
---> 1daf62e8cab5
Step 2/5 : MAINTAINER donner
---> Running in 6f9c77f42cc8
Removing intermediate container 6f9c77f42cc8
---> 918405cff10a
Step 3/5 : RUN pip install django==1.11.9 -i https://pypi.doubanio.com/simple
---> Running in 07e621fba5b9
Looking in indexes: https://pypi.doubanio.com/simple
Collecting django==1.11.9
Downloading https://pypi.doubanio.com/packages/c8/a6/291039f0ce4b9818e0399359866337e6dfe9c0e23d8d94f00e657edbfcd8/Django-1.11.9-py2.py3-none-any.whl (6.9 MB)
Collecting pytz
Downloading https://pypi.doubanio.com/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509 kB)
Installing collected packages: pytz, django
Successfully installed django-1.11.9 pytz-2019.3
Removing intermediate container 07e621fba5b9
---> 01367e1b5832
Step 4/5 : RUN mkdir /home/donner
---> Running in 705bd8f7ab90
Removing intermediate container 705bd8f7ab90
---> 9d8734c77e0b
Step 5/5 : WORKDIR /home
---> Running in d3f874dfba6a
Removing intermediate container d3f874dfba6a
---> 8dec7aace37d
Successfully built 8dec7aace37d
Successfully tagged django1.11.9:latest
[root@alicentos ~/test]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
django1.11.9 latest 8dec7aace37d 10 seconds ago 950MB
[root@alicentos ~/test]#
[root@alicentos ~/test]# docker run -it --name=mydjango django1.11.9 /bin/bash
root@9dd41dc07634:/home# ls
donner
root@9dd41dc07634:/home# pip list
Package Version
---------- -------
Django 1.11.9
pip 20.0.2
pytz 2019.3
setuptools 45.2.0
wheel 0.34.2
root@9dd41dc07634:/home# 然后就可以通过这个镜像创建容器了!

最新文章

  1. 12-返回指针的函数&&指向函数的指针
  2. 应用HTK搭建语音拨号系统2:创建单音素HMM模型
  3. C++封装、继承、多态
  4. Facebook等使用苹果源生分享
  5. Junit4中的新断言assertThat的使用方法
  6. java基础知识回顾之java Thread类学习(八)--java.util.concurrent.locks(JDK1.5)与synchronized异同讲解
  7. c# 中日期的使用
  8. Log4Net 配置和使用
  9. POJ 2395 Out of Hay
  10. 4.5、Libgdx运行日志管理
  11. multiset基础学习,可以有重复类型的多重集合容器
  12. Python进阶开发之网络编程,socket实现在线聊天机器人
  13. 20155324 实验5 MSF基础应用
  14. shut immediate 数据库遭遇 ORA-24324 ORA-24323
  15. C#动态系统托盘图标
  16. jQuery键盘敲击事件,换键的话换键码就可以
  17. tomcat中web项目编译后的结构
  18. [LeetCode] 696. Count Binary Substrings_Easy
  19. 设计模式之单例模式-C++
  20. PCA原理解释(二)

热门文章

  1. Codeforces Global Round 11【ABCD】
  2. codeforces 86D D. Powerful array
  3. 洛谷 P6225 [eJOI2019]异或橙子 (树状数组)
  4. .net core mvc 获取Web根目录和内容根目录的物理路径
  5. vs2017创建文件模板(自动添加创建信息:创建者,创建日期等信息)
  6. [Golang]-3 函数、多返回值、变参、闭包、递归
  7. IFIX 5.9 报警存sql
  8. 2017CCCC决赛 L1-3. 阅览室
  9. Python_K-means算法
  10. 买车交税 All In One