【docker】Dockerfile的编写

Dockerfile的编写

bash 复制代码
1、访问容器中的服务

	1、端口映射
	
	2、使用IP


# 构建镜像

	1、Dockerfile
	
		规范:
			Dockerfile命名必须D大写其他必须小写。
			Dockerfile中所有的指令必须大写
			
		构建镜像的命令
		
			docker build 
			
			参数:
				-t : 指定构建镜像的名称
	
		1、FROM
		
			指定基础镜像。在Dockerfile中唯一一个必须项。
		
		2、RUN
		
			在构建镜像时,运行指定的命令。
			
			注意:运行的命令必须是基础镜像中包含的命令;执行的结果直接保存在镜像中。
		
		3、ADD
			
			将指定的文件上传到镜像中。
		
		4、COPY
			
			将指定的文件复制到镜像中。
			
			
		COPY 和 ADD 之间的区别?
		
			1、ADD支持自动解压功能(只支持tar包解压),COPY不支持
			2、ADD支持通过URL下载文件(不支持自动解压),COPY不支持

		5、EXPOSE
		
			指定容器需要向外暴露的端口
			如果没有指定任何端口,可以使用-p做端口映射,但是不能使用-P做端口映射。
		
		6、VOLUME
			指定挂在卷,指定的挂载卷并不是设置了就挂载到指定的目录。当容器启动的时候,如果添加了-v参数,以-v参数为准,如果没有,则在宿主主机上的/var/lib/docker/volumes,随机映射。
			
		
		7、CMD
		
			指定一个容器的启动命令。全局只能有一个,如果有多个,最后一个生效。
			
			exec格式
			
				["nginx", "-g", "daemon off;"]
			
			shell格式
			
				nginx -g 'daemon off;'

		8、WORKDIR
			设置工作目录。运行应用程序时的启始目录(默认是根目录),可以这样理解,执行命令时相对路径的原始目录。
		
		9、ARG
		
			设置运行时变量。
			
			案例:要求写一个Dockerfile,实现每次安装的软件都是自定义。
			
			[root@kubernetes docker]# docker build --build-arg=PACKAGE=zsh -t nginx:v15 .
		
		10、ONBUILD
		
			触发器,ONBUILD后面跟指令,在构建是不会执行,当当前镜像作为基础镜像构建时执行。
			
			
		11、ENV
		
			设置一个环境变量。
		
		12、MAINTAINER
		
			设置维护者信息。
		
		13、ENTRYPOINT
			
			设置启动命令。
			
### ENTRYPOINT 和 CMD 的区别

1、ENTRYPOINT 作为启动命令时无法被docker run覆盖(如果docker run指定命令,会被认为成ENTRYPOINT的参数)。
2、如果ENTRYPOINT和CMD指令同时存在,则CMD的相关内容会被设置成ENTRYPOINT的参数


# nginx中
server {

	server_name _;
	listen 80;
	
	root /usr/share/nginx/html;
	
	location / {
		index index.php ;
	}
	
	location ~* \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}

}
相关推荐
虎头金猫19 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS20 小时前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心1 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing1 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)1 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang1 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特1 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe1 天前
docker常见命令
docker
正经教主1 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿1 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器