Dockerfile构建镜像(二)

本文详细介绍了如何使用Dockerfile构建不同的Docker镜像,包括环境准备、基本指令如FROM、CMD、ENTRYPOINT的使用,以及变量和参数的传递。通过实际案例,展示了CMD与ENTRYPOINT的区别和结合使用的方法。

环境准备

服务器系统Centos7.3
内存1G
CPU2核
IP地址10.0.0.43
mkdir Dockerfile
cd Dockerfile/
vim Dockerfile
FROM centos
WORKDIR  /usr/local/src
RUN touch hello
WORKDIR  /usr/share
RUN touch aaronszm

在这里插入图片描述

docker build -t centos:1.1 ./
docker run --rm -it centos:1.1   /bin/bash  
pwd
ls

在这里插入图片描述

cd /usr/local/src/
ls
exit

在这里插入图片描述

vim Dockerfile 
FROM centos
CMD "echo hello aaronszm"
docker build -t centos:1.2 ./

在这里插入图片描述

docker run centos:1.2
docker run centos:1.2 echo 123

在这里插入图片描述

vim Dockerfile 

FROM centos
CMD ["echo","hello","aaronszm"]

在这里插入图片描述

docker build -t centos:1.3 ./
docker run centos:1.3

在这里插入图片描述

vim Dockerfile 

FROM centos
ENTRYPOINT ["echo","王麻子"]

在这里插入图片描述

docker build -t centos:1.4 ./
docker run --rm centos:1.4
docker run --rm centos:1.4 echo tom
echo "王麻子 echo tom"

在这里插入图片描述

vim Dockerfile 
FROM centos
CMD ["echo","jack"]
ENTRYPOINT ["echo","王麻子"]

在这里插入图片描述

docker build -t centos:1.5 ./
docker run --rm centos:1.5

在这里插入图片描述

所以说当CMD 和 ENTRYPOINT同时存在的时候,那么CMD只会是一个参数的形式传递给ENTRYPOINT,不会再单独去执行了!

在这里插入图片描述

vim Dockerfile 
FROM centos
CMD ["echo","jack"]
CMD ["tom","lucy"]
ENTRYPOINT ["echo","王麻子"]

在这里插入图片描述

docker build -t centos:1.6 ./
docker run --rm centos:1.6

在这里插入图片描述

在这里插入图片描述

docker run --rm centos:1.6 张德帅

在这里插入图片描述

vim Dockerfile 
FROM centos
ENTRYPOINT ["echo","$NAME"]

在这里插入图片描述

docker build -t centos:1.7 ./
docker run --rm -e NAME=lucy centos:1.7
vim Dockerfile
FROM centos
ENTRYPOINT ["echo",$NAME]

在这里插入图片描述

build -t centos:1.8 ./
docker run --rm -e NAME=lucy centos:1.8

在这里插入图片描述

vim Dockerfile 
FROM centos
ENTRYPOINT echo $NAME

在这里插入图片描述

docker build -t centos:1.9 ./
docker run --rm -e NAME=lucy centos:1.9

在这里插入图片描述

vim Dockerfile 
FROM centos
ENV NAME=tom

ENTRYPOINT echo $NAME

在这里插入图片描述

docker build -t centos:2.0 ./
docker run --rm centos:2.0
docker run --rm -e NAME=lucy centos:2.0

在这里插入图片描述

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值