【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;
	}

}
相关推荐
旅僧2 分钟前
Ubantu docker环境配置(前置)
运维·docker·容器
“码”力全开34 分钟前
解耦异构算力:基于 Docker 与边缘计算的 AI 视频管理平台,实现 GB28181/RTSP 统一接入与源码交付深度解析
人工智能·docker·边缘计算
正经教主2 小时前
【docker基础】第六课:Web应用与数据库容器部署
网络·docker·容器
Shacoray2 小时前
K8s 中 Ingress 的 HTTPS 证书 如何生成?
容器·https·kubernetes
开发者联盟league2 小时前
使用k8s安装Jenkins
容器·kubernetes·jenkins
“码”力全开2 小时前
突破安防黑盒:基于 Docker 与边缘计算的 AI 视频管理平台,实现 GB28181/RTSP 统一接入与全源码交付二次开发架构解析
人工智能·docker·边缘计算
花间相见3 小时前
【AI工作流搭建n8n】—— Docker + PostgreSQL 生产环境部署全攻略:MCP 集成与 Skills 技能实战
人工智能·docker·postgresql
正经教主3 小时前
【docker基础】 第七课:Docker Compose 多容器实战
运维·docker·容器
正经教主3 小时前
【docker基础】Redis的docker部署
redis·docker·容器
是一个Bug4 小时前
Docker 与 Kubernetes:从“集装箱”到“远洋舰队”
docker·容器·kubernetes