当前位置: 首页 > article >正文

docker镜像制作的命令,docker自定义镜像

一.Dockerfile制作镜像的命令

	1.Dockerfile文件的编写格式

		FROM	//指定基础镜像(唯一)
			FROM 镜像名:标签
	
		USER	//启动容器使用的用户,切换用户执行命令(唯一)
			相当与sudo -u nobody,切换用户执行命令
		RUN	//在容器内执行命令,可以写多条	
			RUN touch /tmp/a.txt;touch /tmp/a.txt
		WORKDIR	//设置启动容器的默认工作目录(唯一),替代cd命令
			WORKDIR /tmp/
			RUM touch a.txt
	
		ADD	//把文件拷贝到容器内,如果文件是tar.xx格式,会自动解压
			ADD myfile.tar /var/tmp
		COPY	//把文件拷贝到容器内,不会自动解压
			COPY myfile.tar /tmp
	
		ENV	//设置启动容器的环境变量
			TZ=Asia/Shanghai
		EXPOSE	//使用镜像创建的容器默认监听使用的端口号/协议
			EXPOSE 1234/tcp //标识作用
	
		ENTRYPOINT	//容器默认的启动命令(唯一)
			ENTRYPOINT="echo"
			CMD="/bin/ls -l"
			执行顺序:${ENTRYPOINT} ${CMD} 
			容器启动输出:/bin/ls -l
	
		CMD	//容器默认的启动参数,启动的时候执行什么参数(唯一)
			CMD: ["/bin/ls","-l"] //cmd可被位置参数覆盖 


		创建镜像命令使用实例
			FROM mylinux:latest
			ADD myfile.tar /var/tmp
			COPY myfile.tar /tmp
			RUN touch /tmp/a.txt;useradd user001
			USER user001
			RUN touch /tmp/b.txt
			WORKDIR /tmp/
			RUN touch c.txt
			ENV TZ=Asia/Shanghai
			EXPOSE 1234/tcp
			CMD ["/bin/bash"]
	
	2.镜像构建命令
		docker build -t 镜像名:标签 Dockerfile所在目录/

二.制作镜像
	1.apache 镜像
		FROM mylinux:latest
		RUN  dnf install -y httpd php && dnf clean all
		COPY 00-mpm.conf /etc/httpd/conf.modules.d/00-mpm.conf
		ADD  myweb.tar.gz /var/www/html/
		ENV  LANG=C
		WORKDIR /var/www/html/
		EXPOSE 80/tcp
		CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]

	2.nginx 镜像
		FROM mylinux:latest
		ADD  nginx-1.22.1.tar.gz /
		WORKDIR /nginx-1.22.1
		RUN  dnf install -y openssl pcre
		RUN  dnf install -y openssl-devel pcre-devel gcc make
		RUN  dnf clean all
		RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
		RUN  make
		RUN  make install
		RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
		ENV  PATH=${PATH}:/usr/local/nginx/sbin
		WORKDIR /usr/local/nginx
		EXPOSE 80/tcp
		CMD  ["nginx", "-g", "daemon off;"]

	3.多阶段镜像

		# 第一阶段编译程序
		FROM mylinux:latest as builder
		ADD  nginx-1.22.1.tar.gz /
		WORKDIR /nginx-1.22.1
		RUN  dnf install -y openssl-devel pcre-devel gcc make
		RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
		RUN  make
		RUN  make install
		RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
		
		# 第二阶段最终镜像
		FROM mylinux:latest
		RUN  dnf install -y pcre openssl && dnf clean all
		COPY --from=builder /usr/local/nginx /usr/local/nginx
		ENV  PATH=${PATH}:/usr/local/nginx/sbin
		WORKDIR /usr/local/nginx
		EXPOSE 80/tcp
		CMD  ["nginx", "-g", "daemon off;"]

一.Dockerfile制作镜像的命令

    1.Dockerfile文件的编写格式

        FROM    //指定基础镜像(唯一)
            FROM 镜像名:标签
    
        USER    //启动容器使用的用户,切换用户执行命令(唯一)
            相当与sudo -u nobody,切换用户执行命令
        RUN    //在容器内执行命令,可以写多条    
            RUN touch /tmp/a.txt;touch /tmp/a.txt
        WORKDIR    //设置启动容器的默认工作目录(唯一),替代cd命令
            WORKDIR /tmp/
            RUM touch a.txt
    
        ADD    //把文件拷贝到容器内,如果文件是tar.xx格式,会自动解压
            ADD myfile.tar /var/tmp
        COPY    //把文件拷贝到容器内,不会自动解压
            COPY myfile.tar /tmp
    
        ENV    //设置启动容器的环境变量
            TZ=Asia/Shanghai
        EXPOSE    //使用镜像创建的容器默认监听使用的端口号/协议
            EXPOSE 1234/tcp //标识作用
    
        ENTRYPOINT    //容器默认的启动命令(唯一)
            ENTRYPOINT="echo"
            CMD="/bin/ls -l"
            执行顺序:${ENTRYPOINT} ${CMD} 
            容器启动输出:/bin/ls -l
    
        CMD    //容器默认的启动参数,启动的时候执行什么参数(唯一)
            CMD: ["/bin/ls","-l"] //cmd可被位置参数覆盖 


        创建镜像命令使用实例
            FROM mylinux:latest
            ADD myfile.tar /var/tmp
            COPY myfile.tar /tmp
            RUN touch /tmp/a.txt;useradd user001
            USER user001
            RUN touch /tmp/b.txt
            WORKDIR /tmp/
            RUN touch c.txt
            ENV TZ=Asia/Shanghai
            EXPOSE 1234/tcp
            CMD ["/bin/bash"]
    
    2.镜像构建命令
        docker build -t 镜像名:标签 Dockerfile所在目录/

二.制作镜像
    1.apache 镜像
        FROM mylinux:latest
        RUN  dnf install -y httpd php && dnf clean all
        COPY 00-mpm.conf /etc/httpd/conf.modules.d/00-mpm.conf
        ADD  myweb.tar.gz /var/www/html/
        ENV  LANG=C
        WORKDIR /var/www/html/
        EXPOSE 80/tcp
        CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]

    2.nginx 镜像
        FROM mylinux:latest
        ADD  nginx-1.22.1.tar.gz /
        WORKDIR /nginx-1.22.1
        RUN  dnf install -y openssl pcre
        RUN  dnf install -y openssl-devel pcre-devel gcc make
        RUN  dnf clean all
        RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
        RUN  make
        RUN  make install
        RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
        ENV  PATH=${PATH}:/usr/local/nginx/sbin
        WORKDIR /usr/local/nginx
        EXPOSE 80/tcp
        CMD  ["nginx", "-g", "daemon off;"]

    3.多阶段镜像

        # 第一阶段编译程序
        FROM mylinux:latest as builder
        ADD  nginx-1.22.1.tar.gz /
        WORKDIR /nginx-1.22.1
        RUN  dnf install -y openssl-devel pcre-devel gcc make
        RUN  ./configure --prefix=/usr/local/nginx --with-pcre --with-http_ssl_module
        RUN  make
        RUN  make install
        RUN  echo 'Nginx is running !' >/usr/local/nginx/html/index.html
        
        # 第二阶段最终镜像
        FROM mylinux:latest
        RUN  dnf install -y pcre openssl && dnf clean all
        COPY --from=builder /usr/local/nginx /usr/local/nginx
        ENV  PATH=${PATH}:/usr/local/nginx/sbin
        WORKDIR /usr/local/nginx
        EXPOSE 80/tcp
        CMD  ["nginx", "-g", "daemon off;"]


http://www.kler.cn/a/466429.html

相关文章:

  • 美的空气净化器好用吗?拾梧、美的、戴森空气净化器除烟哪个好?
  • 【工具类】RedisUtil 操作相关
  • Outlook2024版如何回到经典Outlook
  • 音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现
  • ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础
  • Kafka3.x KRaft 模式 (没有zookeeper) 常用命令
  • AWS re:Invent 2024 - Dr. Werner Vogels 主题演讲
  • VTK知识学习(28)-区域提取
  • SpringMVC的消息转换器
  • 国产芯RK3568教学实验箱操作案例:颜色识别抓取积木
  • Android 第三方框架:网络框架:OkHttp:源码分析:缓存
  • 基于springboot+vue的校园论坛系统
  • 代码随想录day34 动态规划2
  • js逆向:算法分析某携酒店数据接口参数testab的生成
  • DALL·E 2模型及其论文详解
  • WPF的一些控件的触发事件记录
  • 渗透测试-非寻常漏洞案例
  • 使用IDEA远程debug服务器上的jar包
  • 基于 Python 虎扑网站的 NBA 球员大数据分析与可视化
  • QEMU网络配置简介
  • Wireshark中的名称解析设置详解
  • ROS 2中的DDS中间件
  • 小信号处理
  • LeetCode -Hot100 - 438. 找到字符串中所有字母异位词
  • 前后端分离项目部署到云服务器、宝塔(前端vue、后端springboot)详细教程
  • Trimble天宝X9三维扫描仪为建筑外墙检测提供了全新的解决方案【沪敖3D】