Docker学习笔记

        保存镜像为文件

        

docker save  08f7fa803374 > image.tar

08f7fa803374 是镜像的id

image.tar 是保存镜像的名称

 

 

DockerFile 

我们简单的梳理一下。首先,My computer 中有本地 docker 的实例。DockerFile是我们用 VI 编写的,第一行永远是 from。

1.编写 Doctor fire

2.build 中会形成一个本地的镜像

3.run 使得镜像变成一个具体实例,Stops tart restored,暂且不说

4.变成具体实例后,使用 commit 又变成新的镜像。

5.具体实例有各种版本和标签号

6.使用 pull 可以将 docker 从仓库里边拉下来

7.采用 push 将其放在阿里云上

 

       e833cebd1be014cbcaeb86bde1b73a30.png

 

DockerFile 的体系结构

From——基础镜像,当前新镜像是基于哪个镜像的,创建新镜像的基础镜像,尽可使用精简的基础镜像,如debian:jessie

MAINTAINER——镜像维护者的姓名和邮箱地址

RUN——容器构建时需要运行的命令  (linux的命令)

EXPOSE——当前容器对外暴露出的端口

WORKDIR——指定在创建容器后,终端默认登陆的进来木工作目录,一个落脚点。

ENV——用来构建镜像过程中设置环境变量

ADD——将宿主机目录下的文件拷贝进镜像且 ADD 命令会自动处理 URL 和解压 tar 压缩包。

COPY——

(1)类似 ADD 拷贝文件和目录到镜像中

(2)将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

VOLUME——容器数据卷,用于数据保存和持久化工作

CMD——

(1)指定一个容器启动时运行的命令

(2)DockerFile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被Docker run 之后的参数替换

ENTRYPOINT——

(1)指定一个容器启动时要运行的命令

(2)ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数

ONBUILD—— 当构建一个被继承的 DockerFile 运行命令时,父镜像在被子继承后父镜像的 ONBUILD 被触发。

 

小案例:

自定义centos

# 继承基础的centos镜像
FROM centos
# 指定作者信息
MAINTAINER myName<myName@163.com>
# 定义环境变量
ENV mypath /tmp
# 设置当前的工作目录,通过环境变量指定
WORKDIR $mypath
  
# 运行 yum 命令,安装 vim 和 net-tools 工具
RUN yum -y install vim
RUN yum -y install net-tools
  
# 暴露 80 端口,运行容器时就可以使用“-p 宿主机端口:容器中端口”指定端口映射
EXPOSE 80
  
# 容器启动时运行的指令
# 启动容器时,只运行最后一条CMD指令
CMD echo $mypath
CMD echo "success-------------------------ok"
CMD /bin/bash

docker build -f Dockerfile2 -t mycentos .  命令构建镜像。其中,-f 用来指定你的 Dockerfile 文件路径;-t 用来指定创建镜像的名称

> docker build -f Dockerfile2 -t mycentos .
 Sending build context to Docker daemon  30.21kB
 Step 1/10 : FROM centos
 latest: Pulling from library/centos
 8ba884070f61: Pull complete
 Digest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c
 Status: Downloaded newer image for centos:latest
  ---> 9f38484d220f
 Step 2/10 : MAINTAINER myName<myName@163.com>
  ---> Running in a6a9d55e4d45
 Removing intermediate container a6a9d55e4d45
  ---> d7381d0b5a77
 Step 3/10 : ENV mypath /tmp
  ---> Running in 8869a2f9705b
 Removing intermediate container 8869a2f9705b
  ---> 2fb2ec363a4a
 Step 4/10 : WORKDIR $mypath
  ---> Running in 2034e28d3c11
 Removing intermediate container 2034e28d3c11
  ---> ed1ec63c5f95
 Step 5/10 : RUN yum -y install vim
  ---> Running in a410721bf127
 Loaded plugins: fastestmirror, ovl
 Determining fastest mirrors
  * base: mirrors.aliyun.com
  * extras: mirrors.163.com
  * updates: mirrors.aliyun.com
 Resolving Dependencies
 --> Running transaction check
 ...more...
 Dependency Installed:
   gpm-libs.x86_64 0:1.20.7-5.el7
   ...more...
   which.x86_64 0:2.20-7.el7
  
 Complete!
 Removing intermediate container a410721bf127
  ---> 14d5b8e356be
 Step 6/10 : RUN yum -y install net-tools
  ---> Running in 9e42eb5b854c
 Loaded plugins: fastestmirror, ovl
 Loading mirror speeds from cached hostfile
  * base: mirrors.aliyun.com
  * extras: mirrors.163.com
  * updates: mirrors.aliyun.com
 Resolving Dependencies
 --> Running transaction check
 ...more...
 Installed:
   net-tools.x86_64 0:2.0-0.24.20131004git.el7
  
 Complete!
 Removing intermediate container 9e42eb5b854c
  ---> 7488c7837498
 Step 7/10 : EXPOSE 80
  ---> Running in 59fb82c9351a
 Removing intermediate container 59fb82c9351a
  ---> 2208c2b5c5a4
 Step 8/10 : CMD echo $mypath
  ---> Running in 4e6e1f1f38b0
 Removing intermediate container 4e6e1f1f38b0
  ---> 79ffde662850
 Step 9/10 : CMD echo "success-------------------------ok"
  ---> Running in f3da03cff7e4
 Removing intermediate container f3da03cff7e4
  ---> 3c2beb3a7025
 Step 10/10 : CMD /bin/bash
  ---> Running in 79e70ac3bb38
 Removing intermediate container 79e70ac3bb38
  ---> 1a7a1d7e2839
 Successfully built 1a7a1d7e2839
 Successfully tagged mycentos:latest

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java-superchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值