首页 > 系统相关 >4.镜像制作方式和dockerfile(Ubuntu、nginx)

4.镜像制作方式和dockerfile(Ubuntu、nginx)

时间:2023-07-24 14:03:55浏览次数:36  
标签:busybox -- nginx conf Ubuntu 镜像 docker dockerfile

制作镜像方式

docker commit通过修改现有的容器,将之手动构建为镜像
docker build 通过dockerfile文件,批量构建为镜像
用镜像做成容器,在容器的基础上定制一个镜像

手动制作镜像:
commit
基于busybox容器创建busybox:v1.0镜像
[root@ubuntu2004 ~]#docker commit -a li -m "init busybox" busybox busybox:v1.0
查询:
[root@ubuntu2004 ~]#docker images 
REPOSITORY                            TAG       IMAGE ID       CREATED          SIZE
busybox                               v1.0      588bb311bb05   42 seconds ago   1.24MB
运行新制作的镜像:
[root@ubuntu2004 ~]#docker run --name b3 -p 8080:80 busybox:v1.0 httpd -f

dockerfile制作镜像Ubuntu,nginx

Ubuntu:
dockerfile文件:
FROM ubuntu:22.04
LABEL Author=limanman version=ubuntu22.04-v1.0 ORG=M50
COPY sources.list /etc/apt/sources.list
RUN apt update && apt -y install wget curl net-tools iproute2 tcpdump telnet traceroute nfs-common lrzsz tree iotop unzip zip && \
    ln -s  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV CLASS=M50 DATE=2022-10-18

RUN groupadd -g 80 www && useradd -u 80 -g www -s /sbin/nologin -M www
nginx:
下载nginx包到nginx目录下
[root@ubuntu2004 nginx]#wget https://nginx.org/download/nginx-1.22.0.tar.gz

dockerfile文件:
FROM ubuntu:22.04-20221018-v1.0
ENV VERSION=1.22.0
ENV NGINX_INSTALL_DIR=/apps/nginx
LABEL Author=limanman version=nginx-${VERSION}
RUN apt update && apt -y install gcc make  libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
ADD nginx-${VERSION}.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-${VERSION} && \
    ./configure --prefix=${NGINX_INSTALL_DIR} --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module && make && make install

EXPOSE 80
COPY nginx.conf ${NGINX_INSTALL_DIR}/conf/nginx.conf
ADD index.html.tar.gz /apps/nginx/html/
COPY docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/apps/nginx/sbin/nginx","-g","daemon off;"]
#CMD ["-g","daemon off;"]
#ENTRYPOINT ["/apps/nginx/sbin/nginx"]

写脚本测试文件:
docker-entrypoint.sh
mkdir -p /apps/nginx/conf/conf.d
cat > /apps/nginx/conf/conf.d/www.conf <<EOF
server {
    listen 80;
    server_name www.wang.org;
    root /data/website;
}
EOF

exec "$@"
加权限:
chmod +x docker-entrypoint.sh

基于镜像运行容器:
[root@ubuntu2004 nginx]#docker run -d -p 80:80 --name mynginx nginx:v1.22.0-2022-10-18

将容器上的官方编译文件拷到宿主机进行自定义编译:
[root@ubuntu2004 ubuntu]#docker cp mynginx:/apps/nginx/conf/nginx.conf /data/dockerfile/app/nginx/
worker_processes  auto;
include /apps/nginx/conf/conf.d/*.conf;
charset utf-8;                    #字符集
开启日志和压缩

标签:busybox,--,nginx,conf,Ubuntu,镜像,docker,dockerfile
From: https://blog.51cto.com/lmm01/6834576

相关文章

  • 一个nginx + vue下二级路径版本化方案
    过程说明:1、arg_appver表示读取url上appver参数2、对appver参数做变量映射得到alias_party1_test路径。具体条件:没有指定参数的话(即"")指向2.8.0版本化文件夹;默认的话(即default)则指向动态拼接的路径3、第2点里面动态拼接如果不需要版本化则先固定一个路径,如果需要则使用$arg_ap......
  • windows11中访问ubuntu双系统文件目录
    1、下载linuxreader(免费版)AccesstoExt2/3/4,HFSandReiserFSfromWindows|DiskInternals2、安装打开后找到ubuntu分区 3、想保存什么文件右键Save就行了 ......
  • Linux系列---【Ubuntu 20.04安装KVM】
    Ubuntu20.04安装KVM一、安装kvm1.安装kvmsudoaptinstallqemu-kvmlibvirt-daemon-systemlibvirt-clientsbridge-utils2.将当前用户添加至libvirt、kvm组sudoadduser$USERlibvirtsudoadduser$USERkvm3.验证安装virshlist--all4.启动libvertsudosyst......
  • [nginx]反向代理grpc
    前言nginx从1.13.10版本开始提供对gRPC代理的支持。由于grpc基于http2,因此编译nginx时需要添加参数--with-http_v2_module来启用对http2协议的支持。常用配置应该是nginx1.25版本开始,声明http2的语法应该单独写,而不是写在listen中。listen80;http2on;基本配置http......
  • dockerfile endpoint使用环境变量
    DockerfileEndpoint使用环境变量介绍在Docker开发环境中,使用环境变量是一种常见的做法。环境变量可以提供一种灵活且可配置的方式,用于在不同的容器之间传递参数。而Dockerfile中的Endpoint用于指定容器的入口点,即容器启动后要执行的命令或脚本。本文将介绍如何在Dockerfile中使......
  • Ubuntu安装Gtest
    安装运行过程概述最近要使用到Gtest做一些测试,网上找了很多方法,感觉都不全,半截子,一时半伙我也是很蒙蔽,所以这里做一个Gtest安装步骤的讲解。备注:本测试在Linux系统下运行,默认已经配置好C++编译环境。获取安装包两种方式方案一:这种方案能下载下来,但是我没有安装成功 gitc......
  • windows中使用ftp连接ubuntu
    需要在Ubuntu安装开启ftp先安装vsftpdsudoaptinstallvsftpd安装后找到配置文件sudovim/etc/vsftpd.conf找到并设置下面选项local_enable=YESwrite_enable=YES保存后重启sudo/etc/init.d/vsftpdrestart这时在windows端可以通过ftp软件连接了,ip可以在Ubuntu通过ifc......
  • ubuntu wifi monitor
    ubuntu安装wifi抓包环境ubuntu安装wifi抓包环境1.wifi型号2.软件安装2.1wifi驱动确认已安装2.2查看wifi信息2.3安装软件3.配置wifi监听模式4.抓包4.1设定channel4.2wireshark过滤器4.3wireshark设置4.4抓包结果1.wifi型号intelAX2002.软件安......
  • ubuntu上virtualbox主机和客户机共享物理串口
    本人电脑上安装的时ubuntu22.04系统,使用virtualbox的虚拟机里面安装了一个Win10。但由于工作关系,某些Win10下的工具需要使用主机上的物理串口。这时有两个办法:1、在vbox里直接把物理串口分配给Win10,设置如下图所示这里的路径/地址添加的是串口的设备对应的设备路径只要这样设......
  • nginx+tomcat部署均衡+虚拟IP配置
    一、配置java环境更新数据源sudoaptupdate安装javasudoaptinstallopenjdk-java-8-jdk查看是否安装成功java-version二、Tomcat配置​ 直接访问tomcat官网(http://tomcat.apache.org/),下载需要的版本,我这里选择apache-tomcat-8.5.90版本操作如下:#安装需求的tomc......