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是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ... 
随机推荐
- 获取自增长的id值
			单个: <insert id="create" parameterType="com.dto.Cou" useGeneratedKeys="tr ... 
- js将相除结果百分比 ,四舍五入函数 toFixed()
			function percentNum(num, num2) { return (Math.round(num / num2 * 10000) / 100.00 + "%"); } ... 
- Xcode 编译运行旧项目报错解决之路
			运行几年前做的项目,发现各种编译报错,一个一个解决记录下: 1.Xcode(Xcode9)编译运行报错,但是在 issue navigatior 栏看不到错误信息: 解决方案:在 show repor ... 
- __call__ ,,__str__魔法函数
			class Test(object): def __init__(self): self.name = "汪 汪" self.girl = "liu cc" # ... 
- SSIS部署后执行失败,无法将保护的XML节点解密
			将包属性中的 protectionLevel 设置成DontSaveSensitive 即可. 
- idea如何提取变量(拆分变量赋值和声明)
			需求描述: 我们时常遇到某个在某个局部作用域声明的变量,想要用在另一个地方,此时就需要在作用域外部声明变量,在作用域中给变量赋值. 在eclipse中这个功能和提取变量在一起,我们可以方便的拆分变量的 ... 
- MongoDB-1 入门
			基础概念 MongoDB 是非关系型数据库,也就是nosql,存储json数据格式会非常灵活,要比mysql更好,同时也能为mysql分摊一部分的流量压力.另外呢,对于非事务的数据完全可以保存到Mon ... 
- .NET中的字符串(4):字符串 - 特殊的引用类型
			字符串驻留 看一下这段代码: 1using System; 2 3namespace Demo4 4{ 5 /**//// <summary> 6 /// String的驻留 7 /// ... 
- Python爬虫:urllib库的基本使用
			请求网址获取网页代码 import urllib.request url = "http://www.baidu.com" response = urllib.request.ur ... 
- 理解Linux内核注释
			内核是Linux的心脏,它是在引导时装入的程序,用来提供用户层程序和硬件之间的接口,执行发生在多任务系统中的实际任务转换,处理读写磁盘的需求,处理网络接口,以及管理内存.一般情况下,自动安装的内核无需 ... 
