docker 命令解释 - nginx镜像制作

news2025/1/15 18:33:32

目录

Dockerfile 部分命令解释

1、ENTRYPOINT

而ENTRYPOINT 语言 CMD的区别

1、docker run 启动容器的时候,可以传递参数进入给ENTRYPOINT里面的命令(-e)

2、当2者都存在的时候,CMD里的内容会成为 ENTRYPOINT 里的参数(位置参数)

如图所示,完成如下实例

配置nginx镜像,并配置监听端口为8007项目:

编译Dockerfile文件

编译好one_creat_ngin.sh文件

在下载过程中,我们可以使用docker stats查看容器的性能

​编辑

下面我们将修改nginx的配置文件

进入容器内部查看nginx配置文件路径,从而得到nginx的配置文件:

修改nginx配置文件(将listen 80 改为 8007)

创建volume

修改Dockerfile文件


Dockerfile 部分命令解释

1、ENTRYPOINT

ENTRYPOINT  ["xxx"] --》指定启动容器的时候运行命令

撰写方式:

而ENTRYPOINT 语言 CMD的区别

1、docker run 启动容器的时候,可以传递参数进入给ENTRYPOINT里面的命令(-e)

2、当2者都存在的时候,CMD里的内容会成为 ENTRYPOINT 里的参数(位置参数)

 

因此相当于docker-entrypoint.sh mysqld 

因此ENTRYPOINT更加高级

dockerfile中CMD和ENTRYPOINT必须要有一个吗?

在 Dockerfile 中定义CMD和ENTRYPOINT指令并不是必须的,但如果想要以容器形式运行应用程序,则至少需要定义其中一个。

如图所示,完成如下实例

其中需要注意while.sh 文件的权限问题

chmod +x while.h

测试:

[root@mysql mydocker2]# vim hello.txt
[root@mysql mydocker2]# vim Dockerfile 
[root@mysql mydocker2]# vim while.sh
[root@mysql mydocker2]# chmod +x while.sh
[root@mysql mydocker2]# ll
总用量 8
-rw-r--r-- 1 root root 83 6月  19 09:51 Dockerfile
-rwxr-xr-x 1 root root 95 6月  19 09:53 while.sh
[root@mysql mydocker2]# docker build -t scbusybox:1.2 .


[root@mysql mydocker2]# docker run --rm -it --name scbusybox-1 scbusybox:1.2
hello world sanchuang! 1
hello world sanchuang! 2
hello world sanchuang! 3
hello world sanchuang! 4
hello world sanchuang! 5
hello world sanchuang! 6
hello world sanchuang! 7
hello world sanchuang! 8
hello world sanchuang! 9
hello world sanchuang! 10

配置nginx镜像,并配置监听端口为8007项目:

准备一台虚拟机centos7.9

安装好docker,创建文件夹/dockernginx

编译Dockerfile文件

[root@mysql dockernginx]# cat Dockerfile 
FROM centos:7             #FROM语句指定了创建镜像的基础镜像
ENV NGINX_VERSION 1.23.1   #定义环境变量
ENV AUTHOR sc_clay
LABEL maintainer="clay<2384319786@qq.com>"   #LABEL语句用于给镜像添加元数据信息

WORKDIR /sc          #WORKDIR语句用于设置当前工作目录
COPY . /sc          #将宿主机本地的文件copy到镜像中的/sc目录下
RUN yum install vim net-tools iputils iproute -y \
    && bash /sc/one_creat_nginx.sh && mkdir /scvolume        #镜像生成过程中执行的命令
EXPOSE 80            #暴露80端口
VOLUME /scvolume       #设置卷为/scvolume
ENV PATH=/usr/local/scnginx66/sbin:$PATH    #定义环境变量PATH
STOPSIGNAL SIGQUIT       #STOPSIGNAL语句用于设置容器停止时发送给进程的信号,其中,<signal>参数表示要发送的信号名称或编号,默认为SIGTERM

CMD ["nginx","-g","daemon off;"] 


[root@mysql dockernginx]# 

编译好one_creat_ngin.sh文件

[root@mysql dockernginx]# cat one_creat_nginx.sh 
#!/bin/bash

#新建一个文件夹用来存放下载的nginx源码包
mkdir -p  /nginx
cd /nginx

#新建工具人用户、设置无法登录模式
useradd  -s /sbin/nologin  clay

#下载nginx
#wget  http://nginx.org/download/nginx-1.23.2.tar.gz
curl -O http://nginx.org/download/nginx-1.23.2.tar.gz

#解压nginx源码包
tar xf nginx-1.23.2.tar.gz

#解决软件依赖关系、需要安装的软件包
yum install epel-release -y
yum install gcc gcc-c++ openssl openssl-devel  pcre pcre-devel  automake  make  psmisc  net-tools lsof vim geoip  geoip-devel wget  zlib zlib-devel -y  

#到达nginx配置文件目录下
cd nginx-1.23.2

#编译前的配置
./configure  --prefix=/usr/local/scnginx66  --user=clay  --with-http_ssl_module --with-http_v2_module --with-stream --with-http_stub_status_module --with-threads 

#编译、开启一个进程同时编译
make -j 1

#编译安装
make install

[root@mysql dockernginx]#

在下载过程中,我们可以使用docker stats查看容器的性能

如果我们想知道容器内进程的消耗,我们就可以使用docker top 容器名

下载完成后查看镜像

[root@mysql dockernginx]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
sclpf-nginx   1.23.1    e704e64746c5   14 minutes ago   671MB
scbusybox     1.2       c86b8980dcc1   5 hours ago      4.86MB
sccentos      7         d1c7ea7a3707   10 hours ago     204MB
nginx         latest    3f8a00f137a0   4 months ago     142MB
mysql         5.7.35    8a8a506ccfdc   20 months ago    448MB
centos        7         eeb6ee3f44bd   21 months ago    204MB
[root@mysql dockernginx]# 

创建容器 

[root@mysql ~]# docker run -d -p 4430:80 --name lpf-nginx sclpf-nginx:1.23.1
2eed8b767d2f4bc133b77655776911ff00460164ba02a92e6c8865b8412a6dd8
[root@mysql ~]# 

查看容器是否启动:

[root@mysql ~]# docker ps
CONTAINER ID   IMAGE                COMMAND                   CREATED              STATUS              PORTS                                   NAMES
2eed8b767d2f   sclpf-nginx:1.23.1   "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:4430->80/tcp, :::4430->80/tcp   lpf-nginx
22e10551d3cd   nginx                "/docker-entrypoint.…"   24 hours ago         Up 4 hours          0.0.0.0:6606->80/tcp, :::6606->80/tcp   claylpf-nginx-1
[root@mysql ~]# 

下面我们将修改nginx的配置文件

1、指定nginx.conf配置文件

        监听端口号为8007

2、创建容器的时候使用卷,加载里面的网页

        2.1创建卷nginx_web,新建一个index.html网页文件

        2.2创建容器,加载容器

进入容器内部查看nginx配置文件路径,从而得到nginx的配置文件:

[root@mysql ~]# docker exec -it lpf-nginx bash
[root@2eed8b767d2f sc]# ls

[root@2eed8b767d2f /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  nginx  opt  proc  root  run  sbin  sc  scvolume  srv  sys  tmp  usr  var
[root@2eed8b767d2f /]# cd /usr/local/scnginx66/conf/
[root@2eed8b767d2f conf]# ls
fastcgi.conf          fastcgi_params          koi-utf  mime.types          nginx.conf          scgi_params          uwsgi_params          win-utf
fastcgi.conf.default  fastcgi_params.default  koi-win  mime.types.default  nginx.conf.default  scgi_params.default  uwsgi_params.default
[root@2eed8b767d2f conf]# 

得到nginx的配置文件

[root@mysql dockernginx]# docker cp lpf-nginx:/usr/local/scnginx66/conf/nginx.conf .
Successfully copied 4.61kB to /dockernginx/.
[root@mysql dockernginx]# ls
Dockerfile  nginx.conf  one_creat_nginx.sh
[root@mysql dockernginx]# 

修改nginx配置文件(将listen 80 改为 8007)

 

创建volume

[root@mysql dockernginx]# docker volume create nginx_web
nginx_web
[root@mysql dockernginx]# docker volume ls
DRIVER    VOLUME NAME
local     4c7c035ff15b9b022f6fc875d8303f6286cf61d8e89ea1692996760169393f1e
local     6167418cb7d0a3dfacef4439f410e1860c088d297cf47aeceaf88d3e56528219
local     a5c3ab3de7511c90ba7a623e4b458e18a4411b2c5140a35b7e03eb52c5ad0b48
local     e129efa82af7232ec5cdfd9f1ebb5e2ab35be29216166551aefe7d322b0309bf
local     nginx-web

 创建index.html 放在卷的数据目录下

[root@mysql dockernginx]# cd /var/lib/docker/volumes/nginx_web/_data
[root@mysql _data]# ls
[root@mysql _data]# vim index.html;
[root@mysql _data]# ls
index.html
[root@mysql _data]# cat index.html 
wo shi da shuai ge lpf 
niu bi

修改Dockerfile文件

FROM centos:7
ENV NGINX_VERSION 1.23.1
ENV AUTHOR sc_clay
LABEL maintainer="clay<2384319786@qq.com>"

WORKDIR /sc
COPY . /sc
RUN yum install vim net-tools iputils iproute -y \
    && bash /sc/one_creat_nginx.sh && mkdir /scvolume
EXPOSE 8007
VOLUME /scvolume
ENV PATH=/usr/local/scnginx66/sbin:$PATH
STOPSIGNAL SIGQUIT
COPY nginx.conf /usr/local/scnginx66/conf      #添加这一条

CMD ["nginx","-g","daemon off;"]

重新编译镜像

[root@mysql dockernginx]# docker build -t sclpf-nginx:1.23.2 .

启动容器使用我们的镜像 和 需要使用的卷

[root@mysql dockernginx]# docker images                                                                                                                                                      
REPOSITORY    TAG       IMAGE ID       CREATED             SIZE
sclpf-nginx   1.23.2    361d4088b257   15 minutes ago      671MB
sclpf-nginx   1.23.1    e704e64746c5   About an hour ago   671MB
scbusybox     1.2       c86b8980dcc1   6 hours ago         4.86MB
sccentos      7         d1c7ea7a3707   11 hours ago        204MB
nginx         latest    3f8a00f137a0   4 months ago        142MB
mysql         5.7.35    8a8a506ccfdc   20 months ago       448MB
centos        7         eeb6ee3f44bd   21 months ago       204MB
[root@mysql dockernginx]# docker run -d -p 4455:8007 --name lpf-nginx-1 -v nginx_web:/usr/local/scnginx66/html sclpf-nginx:1.23.2
dec86911d80e28e1bd2ce8b58cf5222d0c752ad17d8d73f141e3fce0f63c7e37
[root@mysql dockernginx]# docker ps
CONTAINER ID   IMAGE                COMMAND                   CREATED             STATUS             PORTS                                       NAMES
dec86911d80e   sclpf-nginx:1.23.2   "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds       0.0.0.0:4455->8007/tcp, :::4455->8007/tcp   lpf-nginx-1
2eed8b767d2f   sclpf-nginx:1.23.1   "nginx -g 'daemon of…"   About an hour ago   Up About an hour   0.0.0.0:4430->80/tcp, :::4430->80/tcp       lpf-nginx
22e10551d3cd   nginx                "/docker-entrypoint.…"   25 hours ago        Up 5 hours         0.0.0.0:6606->80/tcp, :::6606->80/tcp       claylpf-nginx-1
[root@mysql dockernginx]# 

 最后测试端口:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytest中断言的重要性

目录 前言 pytest断言 增加断言详细信息 异常断言 .type .value .traceback pytest常用断言 前言 在pytest中&#xff0c;断言是非常重要的一部分。断言可以帮助我们验证代码的正确性&#xff0c;检查函数返回的值是否符合要求&#xff0c;以及判断程序中预期行为是否发生。如…

MySQL数据库(二)

前言 本文是关于MySQL数据库的第二弹。 临时表不受原表数据类型的约束&#xff01;&#xff01; SQL语法不区分大小写。 一、列的使用 &#xff08;一&#xff09;列的增加 1、全列插入 insert into 表名 values (数据,数据); 也可以同时插入多条数据: insert into 表名 va…

小程序跳转多次返回首页

小程序跳转多次返回首页 小程序跳转多个页面后直接返回首页 问题 例&#xff1a; 跳转&#xff1a;A(首页) - > B -> C -> D 返回&#xff1a;D -> A(首页) 1、页面中按钮跳转 <!--D页面 WXML--> <view class"-btn"><button bindtap&q…

6月第3周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩)发布!

飞瓜轻数发布2023年6月12日-6月18日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…

浅谈智能配电房的系统设计和技术方案

张心志acrelzxz 安科瑞电气股份有限公司 上海嘉定 201801 摘 要&#xff1a;为了进一步提升配网运维工作质量和效率&#xff0c;支撑配网技术发展向数字化、精益化、智能化转型。在大量的配电房现状问题分析以及新监测技术调研的基础上&#xff0c;文章提出了智能配电房…

WebGL/Threejs瀑布水流粒子效果

webgl瀑布效果 初始化场景 function init () {scene new THREE.Scene();camera new THREE.PerspectiveCamera (45, scr.w / scr.h, 0.1, 10000);renderer new THREE.WebGLRenderer ({ antialias: true });renderer.gammaInput true;renderer.gammaOutput true;renderer.…

盘点中国顶级黑客Top10,最后一位你猜是谁

第一名&#xff1a;袁仁广 别名&#xff1a;大兔子(datuzi)&#xff0c;人称袁哥。提起袁任广&#xff0c;知道的人或许并不多。但如果提起袁哥或者大兔子&#xff0c;在国内安全业界称得上尽人皆知。在国内&#xff0c;他的windows系统方面的造诣可谓首屈一指&#xff0c;早在…

centos系统socket5安装与使用

一、socket5安装 1、安装依赖 yum -y install gcc openldap-devel pam-devel openssl-devel 2、安装socket5 wget http://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gztar -xzvf ss5-3.8.9-8.tar.gzcd ss5-3.8.9./configuremakemake install 二、…

Android Jetpack Compose — Slider滑动条

在Android Jetpack Compose中&#xff0c;Slider(滑动条&#xff09;是一个常用的用户界面控件&#xff0c;它允许通过滑动条来选择一个范围或数值。Slider控件非常适用于调整音量、亮度、进度等需要连续调整的场景。 一、Slider的属性 Slider是Android Jetpack Compose中的一个…

html实现多种风格步骤条

文章目录 1.设计来源1.1 线性风步骤条1.2 进度风步骤条1.3 花式风步骤条1.4 格子风步骤条 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/131308246 html实现多种风格步骤…

Java版本+企业电子招投标系统源代码

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…

浅析景区慢直播的需求与基于视频技术的解决方案

一、行业背景 从春节到“五一”假期&#xff0c;旅游市场高开稳走&#xff0c;复苏持续提速。“慢直播”是一种特别的直播形式&#xff0c;没有主持人&#xff0c;也没有绚丽的镜头切换以及精美的后期制作&#xff0c;只用固定机位拍摄来更加真实地展现事件现场&#xff0c;以…

文件上传413状态码报错解决方案

目录 前言 解决办法 前言 我的前端Vue项目部署在Nginx上&#xff0c;当我上传一个3M多的图片时&#xff0c;发生413错误&#xff0c;刚开始我以为是数据库字段不对&#xff0c;但我看后确实是大数据类型&#xff08;text、blob&#xff09;&#xff0c;这种数据类型应对一张…

《后端存储实战课》课程学习笔记(三)

流量大、数据多的商品详情页系统该如何设计&#xff1f; 电商的商品系统主要功能就是增删改查商品信息&#xff0c;没有很复杂的业务逻辑&#xff0c;支撑的主要页面就是商品详情页。设计这个系统的存储&#xff0c;你仍然需要着重考虑两个方面的问题。 第一&#xff0c;要考虑…

First De-Trend then Attentd: Rethinking Attention for Time-Series Forecasting

论文题目&#xff1a;重新思考注意力在时间序列预测任务中应用 作者单位&#xff1a;亚马逊 访问学者、亚马逊云科技 摘要&#xff1a; 基于Transformer的一系列方法在长时间序列预测任务中很有效&#xff0c;除了在时域部分学习注意力外&#xff0c;最近的工作也在频域中探…

心中的TOP4编程语言❤

编程语言心动值排名&#xff1a; java&#xff1a;❤❤❤❤❤ python&#xff1a;❤❤❤❤ C&#xff1a;❤❤❤ C&#xff1a;❤❤❤❤ 一&#xff1a;关于编程语言优劣的评选标准 个人认为一门语言的优劣势标准评判主要是这门语言解决了哪一类问题&#xff0c;为人类创造了多…

Linux0.11内核源码解析-pipe.c

目录 什么是PIPE&#xff1f; PIPE注意事项 有名和匿名管道 内核管道通信 管道读函数 管道写函数 管道创建 什么是PIPE&#xff1f; 进程间通信&#xff08;IPC&#xff0c;Inter-Process Communication&#xff09;是指在不同进程间进行数据通信和交换的过程。管道&am…

生成式AI数据中心网络来了,NVIDIA抢占加速计算高端市场

在大模型和生成式AI的大风口下&#xff0c;NVIDIA大力倡导并率先进军传统数据中心的高端市场——加速计算数据中心。自进入AI和大数据时代&#xff0c;业界就开始出现“加速计算”的概念。简单理解&#xff0c;加速计算即使用GPU、FPGA以及各种DPU等加速芯片以及相关的软件技术…

【Java】POJO类的属性不要命名为isXXX的问题描述,复现,解决方法

问题描述 POJO的属性是布尔类型的时候&#xff0c;采用is_xxx的命名方式&#xff0c;出现参数无法找到的情况 问题复现 Boolean 的属性命名为isA&#xff0c;但是它的getter和setter自动取消了is public class Person { Boolean isA; public Boolean getA() { return is…

locust学习教程(4) - 命令行参数

前言 一句话总结&#xff1a;命令行参数、环境变量、配置文件 1、所有命令行参数 1.1、常用场景参数解读 1.1.1、无web界面&#xff0c;定时运行&#xff0c;数据存储在csv中&#xff1a; locust -f per_01_test.py --headless -u 10 -r 1 -t 1m -s 120 --csvexample --head…