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

}
相关推荐
❀͜͡傀儡师3 小时前
docker部署orion-ops一站式智能运维管理平台
运维·docker·容器·orion-ops
DarkAthena4 小时前
【DOCKER+ORACLE】使用docker-compose一键拉起一个ORACLE-ADG一主一备环境
docker·oracle·容器
❀͜͡傀儡师4 小时前
docker部署Portracker 实现局域网实时端口监控
docker·容器·portracker
我可以将你更新哟4 小时前
【docker测试】在Ubuntu 22.04.3中部署docker
ubuntu·adb·docker
方也_arkling4 小时前
【Docker】Docker的安装和使用
docker·容器·github
❀͜͡傀儡师4 小时前
docker安装spug运维管理平台
运维·docker·容器
Damon小智5 小时前
Windows系统安装Docker容器搭建Linux环境
linux·运维·windows·docker·子系统
qq_317620315 小时前
03:Docker数据管理与网络
docker·数据持久化·端口映射·网络模式·volume数据卷
Irene19915 小时前
使用 Docker 的 Node.js(附:三种 Node.js 环境详细对比)
docker·容器·node.js