1-Docker学习笔记
docker还是比较容易的,比较蛋疼的就是镜像网络问题,不过也可以配置了镜像加速器(比如阿里云)。这里重点记录一下初学docker时遇到的知识点。
docker环境变量
docker对环境变量的定义和初始化是在Dockerfile中配置的,也就是说在制作docker镜像时进行定义
Dockerfile
//定义了两个环境变量NAME,AGE FROM centos ENV NAME "heboan" ENV AGE ADD . /opt/app WORKDIR /opt/app ENTRYPOINT ["sh","hello.sh"]
hello.sh
#!/bin/bash echo "name: $NAME" echo "age: $AGE"
docker添加的环境变量会被写入镜像的环境变量中,所以hello.sh只需要读取系统的环境变量就可以取到docker的环境变量
先build一个镜像
docker build . -t envimg:v1

也可以使用docker run --env <key>=<value> <IMAGE-ID>来修改环境变量

查看环境变量
docker exec -it <CONTAINER-NAME> OR <CONTAINER-ID> env

docker的CMD和ENTRYPOINT指令区别
### CMD支持三种格式 ###
① CMD ["executable","param1","param2"] 使用exec执行,推荐使用
② CMD command param1 param2 在/bin/sh中执行,提供需要交互的应用
③ CMD ["param1","param2"] 提供给ENTRPOINT的默认参数
- CMD是指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令,如果指定了多条,只有最后一条会被执行
- 如果用户启动容器时指定了运行的命令,则不会执行CMD命令
### ENTRYPOINT ###
① ENTRYPOINT ["executable", "param1", "param2"]
② ENTRYPOINT command param1 param2 在shell中执行
- 配置容器启动后执行的命令,并且不可被docker run提供的命令覆盖,。而是将其作为ENTRYPOINT指定命令的参数
- 每个Dockerfile只能有一个ENTRYPOINT,当指定多条时,只有最后一个会被执行
注意:
如果Dockerfile指定基础镜像中是ENTRYPOINT指定的启动命令,则该Dockerfile中的CMD依然是为基础镜像中的ENTRYPOINT设置默认参数
1-Docker学习笔记的更多相关文章
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- Docker学习笔记总结
Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/ 一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
随机推荐
- 【PAT甲级】1093 Count PAT's (25 分)
题意: 输入一行由大写字母'P','A','T',组成的字符串,输出一共有多少个三元组"PAT"(相对顺序为PAT即可),答案对1e9+7取模. AAAAAccepted code ...
- P1478
昨天花一下午时间,把 codeblocks 代码 highlight 改了改,感觉还不错 :) 咳咳.还是说题吧. 这道题利用贪心思想,先去除所有够不着的,然后按使用力气 $ y_i $ 从小到大排序 ...
- 计算机二级-C语言-程序填空题-190115记录-fprintf()函数和fscanf()函数的使用。
//给定程序,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myflie3.txt的文本文件中,然后再顺序读出显示在屏幕上. //重难点:fprintf()函数和fscanf()函数的使 ...
- 大端(bigend)与小端(littleend)
大端:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中: 小端:是指数据的高位保存在内存的高地址中,而数据的高 ...
- “systemd”命令管理各类服务
一.centos7.red hat7 取消了运行级别的概念,用systemd代替了init中的运行级别概念. 二.用"ln"命令把"多用户,无图形"目标文件链接 ...
- UVA315 Network
割点的概念:对于无向图,删除这个点与其相连的边,整个图的连通分量个数增加. 对于无向图的tarjan算法,必须要设前驱~ 求割点的模板~ #include<cstdio> #include ...
- yaml服务部署示例
apiVersion: apps/v1kind: Deploymentmetadata: name: igirl namespace: chaolai labels: app: igirl ...
- 有未经处理的异常: 0xC00000FD: Stack overflow
将“项目属性.链接器.系统.堆栈保留大小”设大一点比如16000000 这是我在网上找到的答案,很好的解决了我的问题,忘了是哪位大神了,总之,向大神致敬
- OpenCV学习 - 图片集合成视频
这个很简单,没什么好说的...这里给出学习手册: 1.官方教程:https://docs.opencv.org 2.这个是一些video相关的API参考:https://docs.opencv.org ...
- Java并发编程(四):并发容器(转)
解决并发情况下的容器线程安全问题的.给多线程环境准备一个线程安全的容器对象. 线程安全的容器对象: Vector, Hashtable.线程安全容器对象,都是使用 synchronized 方法实现的 ...