1-4dockerfile基本使用
1.创建一个文件夹
mkdir mynginx
cd mynginx
touch Dockerfile
[root@VM_0_10_centos mynginx]# cat Dockerfile
FROM nginx:1.17 #第一次镜像 RUN echo echo '<h1>Hello, zjy!</h1>' > /usr/share/nginx/html/index.html
1-1、如果说没有第一层镜像,是空白镜像scratch
FROM scratch
...
1-2、dockerfile 最大镜像层数有限制
Union FS 是有最⼤层数限制的,⽐如 AUFS,曾经是最⼤不得超过 42 层,现在是不得超过 127层。
Dockerfile 正确的写法应该是这样: FROM debian:jessie
RUN buildDeps='gcc libc6-dev make' \
&& apt-get update \
&& apt-get install -y $buildDeps \
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \
&& mkdir -p /usr/src/redis \
&& tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \
&& make -C /usr/src/redis \
&& make -C /usr/src/redis install \
Dockerfile 定制镜像
27
&& rm -rf /var/lib/apt/lists/* \
&& rm redis.tar.gz \
&& rm -r /usr/src/redis \
&& apt-get purge -y --auto-remove $buildDeps #而不是这样怎写的
FROM debian:jessie
RUN apt-get update
RUN apt-get install -y gcc libc6-dev make
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz"
RUN mkdir -p /usr/src/redis
RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
RUN make -C /usr/src/redis
RUN make -C /usr/src/redis install
2.制作镜像
docker build -t nginx:v3 .


3、dockerfile 构建会有上下文
如果注意,会看到 docker build 命令最后有 一个 . , . 表示当前目录, Dockerfile 就在当前目录。
当执行COCP指令时会把当前目录打包放在镜像中,如果把dockerfile放在根目录下,打包可能一个镜像会几十G,那样就尴尬了
COPY ./package.json /app/ # ./package.jso
#所有打包的或者拷贝的全都放到dockerfile 所在目录中,这样才正确
应该会将 Dockerfile 置于一个空目录下,或者项目根目录下。
实际上 Dockerfile 的件名并不要求必须为 Dockerfile,而且并不要求必须位于上下目录 -f ../Dockerfile.php 参数指定某个文件作为 Dockerfile
4、镜像的迁移
Docker 还提供了 docker load 和 docker save 命令,以将镜像保存为一个 tar 文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使 Docker Registry,无论是直接使用Docker Hub 还是使内内网私有 Registry 都可以。
[root@VM_0_10_centos mynginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v3 1af39fd25fb3 29 minutes ago 126MB
nginx v2 7d3e771ab88b 5 hours ago 126MB
nginx 1.17 f949e7d76d63 38 hours ago 126MB
ubuntu 16.04 657d80a6401d 7 days ago 121MB
[root@VM_0_10_centos mynginx]# docker save nginx:v3|gzip > nginx_v3.tar.gz
[root@VM_0_10_centos mynginx]# ls
Dockerfile nginx_v3.tar.gz
[root@VM_0_10_centos mynginx]# du -sh nginx_v3.tar.gz
47M nginx_v3.tar.gz
[root@VM_0_10_centos mynginx]# docker rmi 1af39fd25fb3
Untagged: nginx:v3
Deleted: sha256:1af39fd25fb3616ea2efd24d00e0f77309c6a8c6af4ab527678a6adea1250991
Deleted: sha256:d2549ea8e90863f679a50fd3378bd9c06fd766107565f53435134d40470c7799 [root@VM_0_10_centos mynginx]# docker load -i nginx_v3.tar.gz
44d9a80fe7fc: Loading layer [==================================================>] 4.096kB/4.096kB
Loaded image: nginx:v3
[root@VM_0_10_centos mynginx]# docker im
image images import
[root@VM_0_10_centos mynginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v3 1af39fd25fb3 30 minutes ago 126MB
nginx v2 7d3e771ab88b 5 hours ago 126MB
nginx 1.17 f949e7d76d63 38 hours ago 126MB
ubuntu 16.04 657d80a6401d 7 days ago 121MB



1-4dockerfile基本使用的更多相关文章
- Docker入门4------Dockerfile
转自:https://www.cnblogs.com/jsonhc/p/7766841.html https://www.cnblogs.com/jsonhc/p/7767669.html Docke ...
- Docker技术入门与实战 第二版-学习笔记-4-Dockerfile外其他生成镜像的方法
其它生成镜像的方法 即除了标准地使用Dockerfile来生成镜像外,还有一些其他的方法 1)从 rootfs 压缩包导入 格式:docker import [选项] <文件>|<U ...
- Docker进阶:容器卷、DockerFile、Docker网络原理
1.Docker镜像 1.1镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和机遇运行环境开发的软件. 包含一个软件的所有内容.蒋所有的应用和环境,直接打包为docker镜像,直 ...
随机推荐
- hbase与Hive的集成
1 HBase与Hive的对比 1.Hive (1) 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询. (2) 用于数据分析. ...
- redux有价值的文档
使用 Redux 管理状态,第 1 部分 https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-g ...
- vscode React编程配置
2.添加RN开发插件 React Native Tools:微软官方出的ReactNative插件,非常好用Reactjs code snippets:react的代码提示,如componentWil ...
- Linux下g++编译thread出错的的解决方法
错误如下图所示: 因为thread是C++11新加入的特性,所以我们在用g++编译的时候不能直接用,需要在g++后面加上 -std=c++0x -pthread 如果是gcc编译多线程的话则应该要用 ...
- web前端开发初级
Web 页面制作基础 Web 的相关概念 WWWWebsiteURLWeb StandardWeb BrowserWeb Server HTML 基础 标记语言从 HTML 到 XHTMLHTML 的 ...
- 使用 gitstats 来统计代码
使用 gitstats 来统计代码 github地址如下 gitstats clone地址 git clone https://github.com/hoxu/gitstats && ...
- 用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 .pack.gz
用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 解压xxx.jar.pack.gz为xxx.jar:unpack200 -r xxx.jar.pack.gz xxx.j ...
- 第09组 Alpha冲刺(1/6)
队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 与服务器连接,配合前 ...
- mac 使用tesseract识别图片中的中文
安装 tesseractbrew install tesseract 加入环境变量export TESSDATA_PREFIX=/usr/local/Cellar/tesseract/4.1.0/sh ...
- 在CentOS上使用Docker镜像安装Jenkins
1.必须先在CentOS上安装Docker,使用以下命名先在Docker Hub上搜索Jenkins镜像 docker search jenkins 2.下载Jenkins镜像,命令如下:(我下载的是 ...