docker入门实践,实战搭建nginx

2023-10-27

查找现成的nginx镜像

可以通过docker search nginx 命令来获取,可以看到有很多,我们一般选取stars最多,即第1个来使用

docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        10691               [OK]
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1500                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   672                                     [OK]
jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as p…   465                                     [OK]
webdevops/php-nginx                                    Nginx with PHP-FPM                              119                                     [OK]
……

下载nginx镜像

docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest: sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Image is up to date for nginx:latest

可以通过如下命令来验证是否下载成功

docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        8 days ago          1.84kB
nginx               latest              7042885a156a        11 days ago         109MB

启动nginx

docker run --name nginx80 -d -p 80:80 -v /Users/alioo/work/docker/nginx/html:/usr/share/nginx/html nginx

命令解释

  • –name nginx80 指定创建的容器名称
  • -d 以守护进程形式创建
  • -p 80:80 将宿主机端口80映射到容器端口80上,命令格式 宿主机端口:容器端口
  • -v /Users/alioo/work/docker/nginx/html:/usr/share/nginx/html 将宿主机目录/Users/alioo/work/docker/nginx/html挂载到容器目录usr/share/nginx/html 中

进阶篇

上述方式只可以指定静态html目录,如果我还想指定nginx配置文件呢

准备自己的nginx.conf 和 conf.d/default.conf:


vi /Users/alioo/work/docker/nginx/conf/nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

vi /Users/alioo/work/docker/nginx/conf/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /api{
        proxy_pass http://192.168.1.1:9999/api;
        # access_log "logs/test.log";
    }
}

含配置文件的nginx启动方式

docker run \
--name nginx81 \
-d -p 81:80 \
-v /Users/alioo/work/docker/nginx/html:/usr/share/nginx/html \
-v /Users/alioo/work/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/alioo/work/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
nginx

含配置文件&日志文件的nginx启动方式

docker run \
--name nginx81 \
-d -p 81:80 \
-v /Users/alioo/work/docker/nginx/html:/usr/share/nginx/html \
-v /Users/alioo/work/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/alioo/work/docker/nginx/log:/var/log/nginx/ \
-v '/Users/alioo/work/docker/nginx/conf/conf.d:/etc/nginx/conf.d' \
nginx

如果启动后通过 docker ps -a 发现容器创建失败呢?

  • 如果自己知道原因则通过下面命令删除重建
docker container stop nginx81; docker container rm nginx81;
  • 如果自己不知道原因,则可以查看容器日志
docker logs nginx81
nginx: [emerg] unexpected end of file, expecting "}" in /etc/nginx/conf.d/default.conf:20

如果还想进入到容器的命令行中玩玩呢,可以使用如下命令

docker exec -it nginx81 /bin/bash

参考文章:https://www.cnblogs.com/hailun1987/p/9671801.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker入门实践,实战搭建nginx 的相关文章

随机推荐

  • 无需编程经验,也能制作租车预约微信小程序,快速上手

    现在 制作租车预约微信小程序不再需要编程经验 只需几个简单的步骤 您就可以拥有自己的租车预约微信小程序 在本文中 我们将介绍如何利用乔拓云网后台来制作租车预约微信小程序 并实现您所需的功能 首先 我们需要进入乔拓云网后台 并点击 轻应用小程
  • CGAL 基于曲面拟合的点云平滑

    目录 一 算法原理 1 主要函数 二 代码实现 三 结果展示 一 算法原理 基于曲面拟合的方法 实现对点云的平滑处理 1 主要函数 头文件 include
  • python+selenium自动化测试解决不了的alert问题,使用PyKeyboard解决方法

    在python自动化测试中 面对浏览器弹出的对话框 python自带的alert可能解决不了关闭弹框 这时候可以引入PyKeyboard来解决 下载并安装pyHook 1 5 1 cp36 cp36m win amd64 whl 下载地址h
  • Arduino实现真正的物联网-通过MQTT服务器-两块板子远程通信

    该博客现已搬运到我的个人博客 上 之后我也会在自己的博客上更新一些东西 这里放上文章链接 我在做竞赛项目的时候 在板子和板子远程交互上做的东西 百度上找到的东西也都是七零八碎的 同时也希望我的博客能给大家一点微薄的帮助 PS 我也是第一次写
  • 爬虫逆向实战(30)-某查查股东关联公司(HmacSHA512)

    一 数据接口分析 主页地址 某查查 1 抓包 通过抓包可以发现数据接口是api people getRelatCompany 2 判断是否有加密参数 请求参数是否加密 无 请求头是否加密 通过查看 标头 可以发现 请求头中有一个key和va
  • React入门(二)

    React入门 二 这一讲 我们来说说React的代码细节 一 整体结构 React官网给出的这个案例 实现的功能是一个小游戏 tic tac toe 游戏在一个九宫格中进行 双方对弈 一方使用圈 另一方使用叉 看看谁先在横 竖或对角线上形
  • 【前端项目】博客系统(页面设计)

    文章目录 一 预期效果 二 实现博客列表页 三 实现博客正文页 四 实现博客登录页 五 实现博客编辑页 一 预期效果 代码详情见 gitee链接 博客列表页效果 博客详情页效果 博客登录页效果 博客编辑页效果 二 实现博客列表页 blog
  • C++中to_string函数的用法

    to string 函数 将数字常量转换为字符串 返回值为转换完毕的字符串 头文件 include lt string gt 必须加 string s to string i 将整数i转换为字符串表示形式 string to string
  • WebRtc集锦

    1 RTP协议全解析 H264码流和PS流 对牛乱弹琴的博客 CSDN博客 rtp流和ps流 WebRTC研究 2 Kurento作为IPC的WebRTC网关 译 对牛乱弹琴的博客 CSDN博客 音视频传输 RTP协议详解和H 264打包方
  • 动态规划(C语言实现)

    文章目录 动态规划的介绍 动态规划的定义 什么叫做分治递归 递推 递归 1 定义 2 引入 分而治之 1 定义 2 过程 什么叫做记忆储存 斐波拉契数列的递归求法 斐波拉契数的定义 传统的递归解法 动态规划解法 感悟与思考 动态规划 动态规
  • 高并发模拟多个用户同时访问接口

    前些天客户需要测试一下接口可以承受多大的并发量 当时就想到了countDownLatch 就小小的提了一下意见就被安排到我的头上 废话就不多说了 为了不浪费你们的时间 先说好这代码是测试单个接口或者方法的并发量的 先说思路 再上代码 整体代
  • 通过id获取input标签元素对象_学点新姿势: 通过DOM Clobbering 引发GMail的的XSS

    什么是AMP4Email AMP4Email 也称为动态邮件 是Gmail的一项新功能 可使电子邮件包含动态HTML内容 尽管编写包含HTML标签的电子邮件已经存在了很多年 但通常情况下都是假定HTML只包含静态内容 即某种格式 和一些图像
  • 计算机网络——快速了解常见应用层协议体系

    文章目录 加密算法 对称加密 非对称加密 一 远程登录 TELNET SSH 1 Telnet 2 SSH 二 文件传输 FTP SFTP FTPS 1 FTP 2 SFTP 3 FTPS SSL工作原理 三 电子邮件 SMTP POP I
  • Gdal-master、PROJ 8.2.1源码下载及编译(Win10+VS2022)

    为了编译Gdal master的源码 需要PROJ的支持 而PROJ又需要SQLite的支持 在电脑创建目录 D My3rdParty 其下设置include lib bin子目录 用于保存源码编译结果 并将目录 D My3rdParty
  • 离散数学(七):一阶逻辑符号化

    离散数学 六 习题课 见雨课堂随堂测试1 2 3 之前学习了命题逻辑 那一阶逻辑和命题逻辑有什么区别呢 其实一阶逻辑是命题逻辑的细化 它将命题分成了个体词和谓词 至于为什么这么做 我的理解是描述的更加细化了 加上量词的辅助作用 可以表达存在
  • 【python】给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1 输入 123 输出 321 示例 2 输入 123 输出 321 示例 3 输入 120 输出 21 注意 假设我们的环境只能存储得下 32 位的有符号整数 则其数值范围为 231 231 1 请根据这个假设 如果反转后整数溢出那
  • html元素的title属性

    Title 属性 The title global attribute contains text representing advisory information related to the element it belongs to
  • (六十五)基于决策树的信用评级

    决策树的结构与划分选择 20世纪70年代末至20世纪80年代初 Quinlan开发了一系列决策树模型 最开始是ID3算法 后来是C4 5算法 随后又发布了C5 0算法 1984年 多位统计学家在著名的 Classification and
  • QPixmap vs. QImage

    Development Tutorials Graphics Performance lt Development Tutorials Contents 1 QPixmap vs QImage 1 1 QImage 1 2 QPixmap
  • docker入门实践,实战搭建nginx

    查找现成的nginx镜像 可以通过docker search nginx 命令来获取 可以看到有很多 我们一般选取stars最多 即第1个来使用 docker search nginx NAME DESCRIPTION STARS OFFI