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

​​Docker 容器化部署核心实战:从镜像仓库管理、容器多参数运行到 Nginx 服务配置与正反向代理原理解析​

本篇摘要

本文系统讲解Docker核心操作,涵盖仓库管理(登录/拉取/推送/搜索)、镜像处理(查看/打标签)、Nginx安装与页面修改,以及容器运行(docker run参数详解),结合图文演示关键步骤,助你快速掌握Docker基础应用。

在这里插入图片描述

欢迎拜访: 点击进入博主主页

本篇主题: Docker仓库操作+镜像操作+容器run操作全方位解析

制作日期: 2025.09.13

隶属专栏: 点击进入所属Docker专栏

一.Docker仓库基础命令

Docker 仓库操作命令

  1. docker login(登录仓库)

    • 功能:登录 Docker 镜像仓库(默认 Docker Hub,国内可用阿里云/腾讯云等替代)
    • 语法:docker login [OPTIONS] [SERVER]
    • 关键参数:-u(用户名)、-p(密码)
    • 备注:必须掌握,推送镜像前需要先登录
      如:

如:

先从官网登录:

在这里插入图片描述

然后对应输入即可:

在这里插入图片描述

  1. docker pull(拉取镜像)

    • 功能:从仓库拉取或更新镜像

    • 语法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    • 关键参数:-a(拉取所有 tagged 镜像)、--disable-content-trust(忽略校验)

    • 备注:必须掌握

如:id或者tag

首先先从对应官网获取:

标签pull:

在这里插入图片描述

id pull:

在这里插入图片描述
在这里插入图片描述
操作:

在这里插入图片描述
在这里插入图片描述

  1. docker push(推送镜像)

    • 功能:将本地镜像推送到仓库

    • 语法:docker push [OPTIONS] NAME[:TAG]

    • 关键参数:-a(推送所有 tagged 镜像)、--disable-content-trust(忽略校验)

    • 备注:必须掌握,需先登录

首先先要搞一个仓库(登录时候的界面):

在这里插入图片描述

进行创建:
在这里插入图片描述
在这里插入图片描述

然后得到对应仓库,这里让我们按照这个格式进行推送,因此需要起别名给镜像:

在这里插入图片描述

如下

起别名:

docker tag nginx:latest youxinga/tmp_repository:mynginx

推送:

docker push youxinga/tmp_repository:mynginx
  1. docker search(查找镜像)

    • 功能:从 Docker Hub 搜索镜像

    • 语法:docker search [OPTIONS] TERM

    • 关键参数:--no-trunc(显示完整描述)、-f(按条件过滤,如 star 数)

    • 备注:必须掌握,但国内因网站被封暂时无法实操

对应指令操作:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. docker logout(登出仓库)

    • 功能:从镜像仓库登出
    • 语法:docker logout [SERVER]
    • 备注:必须掌握,通常用 Docker Hub,也可用阿里云/腾讯云练习

Docker 镜像操作命令

  1. docker images(列出本地镜像)

    • 功能:查看本地已有的 Docker 镜像
    • 语法:docker images [OPTIONS] [REPOSITORY[:TAG]]
    • 别名:docker image lsdocker image list
    • 关键参数:-a(显示所有,包括中间层)、-q(只显示 ID)、--no-trunc(显示完整信息)

如下(一些搭配的使用):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

也可以结合linux系统命令使用:

在这里插入图片描述

  1. docker image inspect(查看镜像详情)

    • 功能:查看某个镜像的详细信息(如配置、历史等)
    • 语法:docker image inspect [OPTIONS] IMAGE [IMAGE...]

使用两种方式:
在这里插入图片描述
在这里插入图片描述

  1. docker tag(标记镜像)

    • 功能:给本地镜像打标签,用于推送或归类
    • 语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    • 别名:docker image tag

进行使用:

在这里插入图片描述

这里看起来好像多了一个,但实际没有被本地复制。

总结下

命令功能是否必须掌握
docker login登录镜像仓库
docker pull拉取镜像
docker push推送镜像
docker search搜索镜像✅(但国内暂不可用)
docker logout登出仓库
docker images查看本地镜像
docker image inspect查看镜像详情
docker tag给镜像打标签

二.基于ubuntu安装宿主机上nginx并修改页面

下面先介绍下web服务器以及nginx:

在这里插入图片描述

  1. Web服务器

    • 指驻留在互联网上的程序,也叫“WWW服务器”。
    • 可向客户端提供文档、放置网站文件供浏览、放置数据文件供下载。
    • 主要功能是提供网上信息浏览服务,是互联网使用最广泛的服务之一。
    • 示例:百度是Web服务器,提供搜索服务。
      在这里插入图片描述
  2. Nginx

    • 是自由、开源、高性能的HTTP服务器和反向代理服务器。
    • 同时也是IMAP、POP3、SMTP代理服务器。
    • 可作为HTTP服务器发布网站,也可作为反向代理实现负载均衡。
    • 属于Web服务器的一种实现。

如: 手机、电脑、平板等客户端可通过Nginx搭建的Web服务器访问网站(如www.baidu.com)。

简单理解正反向代理:

正向代理:
在这里插入图片描述

就像代购:你(客户端)想访问国外网站,但自己上不去,就找了个代理服务器(代购)帮你去买。

  • 谁设置? 你自己(客户端)主动设置代理。
  • 谁知道? 目标网站只看到代理服务器,不知道是你访问的。
  • 用途:翻墙、隐藏你的IP、绕过限制。

反向代理(帮网站扛流量):
在这里插入图片描述

就像饭店前台:你(用户)去网站吃饭,但背后有多个厨师(服务器)。反向代理(前台)先接待你,再决定让哪个厨师做菜。

  • 谁设置? 网站老板(服务端)部署的。
  • 谁知道? 你只和前台打交道,不知道后面有几个厨师。
  • 用途:分摊流量(防宕机)、隐藏服务器、加速访问。

总结

  • 正向代理 = 你找代理帮你上网(客户端主动)。
  • 反向代理 = 网站找代理帮你扛流量(服务端主动)。

下面进行操作:

首先检查下机器是否存在nginx(相当于起到百度效果),卸载掉(这里杀死master进程,其他都没了):

在这里插入图片描述

进行完全卸载:

在这里插入图片描述

更新完apt源后重新安装,并启动:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看对应配置信息位置:

在这里插入图片描述
在这里插入图片描述
根据回显的配置信息找到对应文件进行修改:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行首页编辑:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面访问结果:

在这里插入图片描述
这里默认是80端口启动。

三.Docker镜像仓库之容器命令之Docker run

简单介绍:

基本信息:

  1. 功能:创建一个新的容器并运行一个命令。
  2. 语法docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  3. 别名docker container run

关键参数:

  1. 运行模式

    • -d:后台运行容器,并返回容器 ID。
    • -i:以交互模式运行容器,通常与 -t 同时使用。
    • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
  2. 端口映射

    • -P:随机端口映射,容器内部端口随机映射到主机的端口。
    • -p:指定端口映射,格式为:主机(宿主)端口:容器端口
  3. 容器命名与标识

    • --name="nginx-lb":为容器指定一个名称。
    • -h "mars":指定容器的 hostname。
  4. 环境变量与资源

    • -e username="ritchie":设置环境变量。
    • --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2":绑定容器到指定 CPU 运行。
    • -m:设置容器使用内存最大值。
  5. 网络与其他

    • --network="bridge":指定容器的网络连接类型。
    • --link=[]:添加链接到另一个容器。
    • --volume, -v:绑定一个卷。
    • --rm:shell 退出的时候自动删除容器。
无参及-d选项简单使用

首先我们进行centos系统的镜像拉取(本地有啥也不干,否则去Docker对应残仓库拉取),然后进行测试:

在这里插入图片描述
在这里插入图片描述

  • 发现没有正在运行,但是本地是有这个镜像。

然后给它启动一下:

在这里插入图片描述

  • 发现没有在运行,因为这里就相当于一个main函数,没识别到终端操作,就立刻执行完退出来。

结合-it命令给它个伪终端:

在这里插入图片描述
在这里插入图片描述

  • 确实模拟出来centos7环境。

在这里插入图片描述

  • 确实在运行。

下面用一下-d标志(返回的容器id),让它在后台运行:

在这里插入图片描述
在这里插入图片描述

  • 符合预期。
-i -t -it 选项简单使用
-i:

进行运行:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 这里发现只有交互响应,但是没有终端标志。
-t:

在这里插入图片描述

在这里插入图片描述

  • 存在终端但是不能正常交互,即伪终端,但是有显示运行中。
-it:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 正常运行。
-p -P选项简单使用

首先先看张图:

在这里插入图片描述

  • 这个命令就是把对应的服务器主机上端口和对镜像容器端口给它打通,然后访问对应服务器端口,就能直接访问到对应容器。
-p:

在这里插入图片描述

  • 之前运行的nginx绑定对应的映射那边就是服务器的80,因此需要换一个。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 可以看到访问成功。
-P:

在这里插入图片描述
在这里插入图片描述

  • 可以看到随机映射的主机端口到容器的端口。

在这里插入图片描述

  • 但是这里看不到,因为云服务器本身没开放这些端口(比如防火墙等)。

在这里插入图片描述

  • 访问也是无效的。

在这里插入图片描述

  • 使用curl,通过本地环回能从服务器内部访问到对应的端口,进而访问到对应的容器。
- -name -h -e 选项简单使用
-name:

在这里插入图片描述
在这里插入图片描述

  • 已经在运行了。
-h:

在这里插入图片描述
在这里插入图片描述

  • 主机名被更改但是容器名字没有被更改。
-e:

在这里插入图片描述

–cpuset-cpus -m 选项简单使用
--cpuset-cpus:

在这里插入图片描述

  • 指定范围内的cpu进行运行。
-m:

在这里插入图片描述
在这里插入图片描述

  • 允许的就是最大内存。

下面设置下限制500mb:

在这里插入图片描述
在这里插入图片描述

  • 设置成功。
–link 选项简单使用

首先创建个别名为centos2的容器:

在这里插入图片描述
然后在创建centos4,把它链接到centos4中,接着从4容器中ping一下2容器(给它起了个别名叫m2,不起的话及时ping centos2):

在这里插入图片描述

  • 发现能ping通。

查看对应etc/hosts:

在这里插入图片描述

  • 发现4中保存了2的对的本地ip地址,然后就能通过本地DNS解析找到本地中2容器对应的位置。

在这里插入图片描述

  • 发现2号容器没有保存4号的本地ip等信息故无法ping通。
–rm 选项简单使用

首先搞一个容器c5:

在这里插入图片描述
在这里插入图片描述

  • 正在运行。

下面exit下,然后再检查下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 发现不仅仅没有运行,连记录都没有了,符合预期,成功删除。

四. 本篇小结

本篇讲了Docker操作核心:仓库管理(登录推拉镜像)、镜像维护(查看/打标)、容器运行(docker run多参数灵活配置),结合Nginx实战与正反向代理理解,掌握基础即能高效部署应用。


文章转载自:

http://fMYNG47a.fLzqq.cn
http://WQEAOGfc.fLzqq.cn
http://sNzItXgw.fLzqq.cn
http://2pX0iEdY.fLzqq.cn
http://iGzWK8O9.fLzqq.cn
http://rnDcbwfo.fLzqq.cn
http://JpLg8r83.fLzqq.cn
http://Gxnf7zDw.fLzqq.cn
http://oynQiT0A.fLzqq.cn
http://8dr7iIHU.fLzqq.cn
http://KjkWCLYw.fLzqq.cn
http://qjvEtQ9g.fLzqq.cn
http://xC2GoHAw.fLzqq.cn
http://TjGfdRP4.fLzqq.cn
http://rZAvH9qi.fLzqq.cn
http://xBzy5a7g.fLzqq.cn
http://gEO2TvfT.fLzqq.cn
http://0S6gZj9R.fLzqq.cn
http://tKSNzUDB.fLzqq.cn
http://VBtJVsZ7.fLzqq.cn
http://bovGHZpg.fLzqq.cn
http://OmwbX76B.fLzqq.cn
http://qI5yrIO6.fLzqq.cn
http://JakKkYZe.fLzqq.cn
http://p2Meq8TG.fLzqq.cn
http://CqsenEiS.fLzqq.cn
http://l2uzTyvL.fLzqq.cn
http://ZFtjEHYl.fLzqq.cn
http://JiiKve6N.fLzqq.cn
http://94hstHde.fLzqq.cn
http://www.dtcms.com/a/381397.html

相关文章:

  • 【目标检测】metrice_curve和loss_curve对比图可视化
  • 文件上传漏洞知识+21关文件上传漏洞教程
  • AS32S601在轨重构(OTA)方案的优化与分析
  • 《Unity项目实战:动态加载引发的显存危机全链路排查与重构实践》
  • 【办公类-109-04】20250913圆牌卡片(接送卡被子卡床卡入园卡_word编辑单面)
  • 档案管理系统
  • 《C++进阶之STL》【哈希表】
  • 阿里云百炼平台使用避坑记录
  • 权限管理混乱如何影响知识获取
  • Linux 开发工具(1)
  • 多级缓存架构实战手册:Caffeine+Redis 从设计到落地的全链路解决方案
  • springboot 二手物品交易系统设计与实现
  • 【秋招笔试】2025.09.13滴滴秋招第一套笔试真题
  • leetcode151:反转字符串中的单词(正则化预处理与双指针原地解法)
  • 解锁 Ray 在 Kubernetes 上的弹性伸缩:打造高效、稳定的分布式作业
  • leetcode33(最小栈)
  • 二进制部署k8s
  • 为什么知识复用时缺乏场景化指导影响实用性
  • 基于Matlab可见光通信系统中OOK调制的误码率性能建模与分析
  • 《Linux线程——从概念到实践》
  • Android相机API2,基于GLSurfaceView+SurfaceTexture实现相机预览,集成的相机算法采用GPU方案,简要说明
  • 美团核销接口,第三方服务商零侵入对接的核心步骤与技巧美团核销接口
  • Java导出复杂excel,自定义excel导出
  • 【SLT库】红黑树的原理学习 | 模拟实现
  • 【轨物方案】赋能绿色能源新纪元:轨物科技发布光伏清洁机器人智能控制与运维解决方案
  • React Hooks原理深度解析与高级应用模式
  • React 原理篇 - 深入理解虚拟 DOM
  • [能源化工] 面向锂电池RUL预测的开源项目全景速览
  • 分布式专题——10.5 ShardingSphere的CosID主键生成框架
  • 【Redis#9】其他数据结构