Dockerfile怎么用
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#
然后就可以通过这个镜像创建容器了!
Dockerfile怎么用的更多相关文章
- 如何用Dockerfile创建镜像
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5181222.html 创建镜像的目的 首先说DockerHub或其它一些镜像仓库已经提供了够多的镜像,有 ...
- Dockerfile初探
git上的asp.net samples工程已经写好了docker file,内容是如下 //任何dockersfile都要以FORM开头,约定是用大写. FROM microsoft/aspne ...
- ubuntu 16.04 Dockerfile 安装mysql
默认上MariaDB的包并没有在Ubuntu仓库中.要安装MariaDB,我们首先要设置MariaDB仓库. 配置MariaDB 仓库 # apt-get install software-prope ...
- 分析Mysql 5.6的Dockerfile
Docker官方的Mysql镜像的Dockerfile托管在Github上,地址如下: https://github.com/docker-library/mysql/tree/5836bc9af9d ...
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
Dockerfile内容如下: FROM centos MAINTAINER Victor ivictor@foxmail.com WORKDIR /root RUN rm -f /etc/yum.r ...
- Docker dockerfile创建Eclipse镜像初试
抽空初步阅读了Docker技术入门与实战 [Kindle电子书] http://www.cnblogs.com/2018/p/4600116.html 现在想首先在开发环境下引入统一的环境,由于开发中 ...
- 安装Nginx的Dockerfile实例
#################################################Dockerfile to build Nginx Installed Containers##Bas ...
- 测试dockerfile
测试dockerfile是否ok(比如我的Dockerfile在deploy目录下) docker build -t my_image -f deploy/Dockerfile . docker im ...
- 通过Dockerfile建立.NET Core mvc Image
生成.NET core mvc code docker run -itd microsoft/dotnet:latestdocker psdocker attach containeridmkdir ...
- .Net Core+cenos7+Docker+Dockerfile 部署实践
因为这段时间比较忙,同时也在抽时间将开发框架转移到 .net Core 上 所以写博客的时间就少了,这次我利用dockerfile成功将.net Core程序部署到了cenos7容器中,特抽时间把我的 ...
随机推荐
- python内置常量是什么?
摘要:学习Python的过程中,我们会从变量常量开始学习,那么python内置的常量你知道吗? 一个新产品,想熟悉它,最好的办法就是查看说明书! 没错,Python也给我们准备了这样的说明书--Pyt ...
- Color Changing Sofa Gym - 101962B、Renan and Cirque du Soleil Gym - 101962C、Hat-Xor Gym - 101962E 、Rei do Cangaço Gym - 101962K 、Sorting Machine Gym - 101962M
Color Changing Sofa Gym - 101962B 题意:给你一个由字母构成的字符串a,再给你一个由0.1构成的字符串b.你需要在a字符串中找到一个可以放下b的位置,要保证b字符串中0 ...
- Berry Jam (前缀和)cf教育场
距离上一篇博客又2个月了 寻思着该除除草了 教育场是真的好难 可能是因为我还是只菜鸡 哭唧唧 先说下题意:有2*n罐果酱,草莓和蓝莓,梯子在中间从梯子那开始往两边吃(可以一会左一会右),问最少吃多少果 ...
- Codeforces Round #631 div1C(或者div2E) Drazil Likes Heap 题解
题目链接:https://codeforces.com/contest/1329/problem/C 或者:https://codeforces.com/contest/1330/problem/E ...
- VS Code 配置 Java IDE
背景 维护的项目在一个内网环境,只能通过跳转机的FTP上传文件.项目是Java spring boot开发,之前的维护人员使用sts(https://spring.io/tools),使用起来体验极差 ...
- win10 远程桌面 ubuntu
一.获取本机ip 通过ip查询网址来查询本机外网地址 二.下载远程链接软件 下载向日葵,注册账号 三.远程链接 将连接端与被连接端分别绑定账号,输入相应ip地址,即可连接.
- Chapter Zero 0.1.2 CPU的架构
CPU的架构 CPU内部含有一些微指令, 我们所使用的软件都要经过CPU内部的微指令集达成才行. 这些指令集的设计又分为两种设计理念, 这就是目前世界上常见的两种主要CPU架构: 精简指令集(Redu ...
- codeforces 1042D - Petya and Array【树状数组+离散化】
题目:戳这里 题意:有n个数,问有多少个区间满足[L,R]内的和小于t. 解题思路: [L,R]内的和小于t等价于sum[R]-sum[L-1]<t,将sum[L-1]左移,可以看出R与L的关系 ...
- spark mllib als 参数
在一定范围内按照排列组合方式对rank,iterations,lambda进行交叉评估(根据均方根误差),找到最小误差的组合,用于建立矩阵分解模型.Signature: ALS.train( rati ...
- MDK5生成BIn文件的方法
配置MDK5 生成bin文件的 第一步:方法打开option for Target 第二步:选择 user 第三步:找到After Build/Rebuild 第四步:勾选run,点击文件选择小图标选 ...