[Docker#5] 镜像堆栈 | 下令 | 实行:搭建Nginx | 创建私有堆栈

[复制链接]
发表于 2025-12-26 15:13:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
镜像堆栈下令
1. 下令清单
2. docker login
3. docker pull
4. docker push
5. docker search
6. docker logout
镜像下令[部门]
1. docker images
2. docker image inspect
3. docker tag
容器下令[部门]
1. docker run
2. docker ps
实战操纵
一. 搭建一个 Nginx 服务
底子知识
Web 服务器
Nginx
安装 Nginx
Ubuntu 安装 Nginx
拉取 Nginx 镜像,启动 Nginx 站点
其他方式拉取 Nginx 镜像
检察当地镜像
二:Docker Hub 上创建自己私有堆栈
底子知识
BusyBox
安装 BusyBox
Ubuntu 安装
实行下令
卸载 BusyBox
Ubuntu 卸载
创建账号
推送镜像到堆栈


镜像堆栈下令

1. 下令清单

下令
别名
功能
备注
docker login

登录堆栈
必须把握
docker pull
docker image pull
拉取镜像
必须把握
docker push
docker image push
推送镜像
必须把握
docker search

查找镜像

docker logout

登出堆栈
必须把握
2. docker login






    • 登岸到一个 Docker 镜像堆栈,默以为官方堆栈 Docker Hub。



  • 语法:
  1. docker login [OPTIONS] [SERVER]
复制代码


  • 关键参数:




    • -u: 登岸的用户名
    • -p: 登岸的暗码



  • 样例:
  1. docker login -u 用户名 -p 密码
复制代码
3. docker pull






    • 从镜像堆栈中拉取或更新指定镜像。



  • 语法:
  1. docker pull [OPTIONS] NAME[:TAG|@DIGEST]
复制代码


  • 别名:
  1. docker image pull
复制代码


  • 关键参数:




    • -a: 拉取全部 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验,默认开启



  • 样例:
  1. docker pull nginx:1.23.3
复制代码


4. docker push



  • 功能:




    • 将当地的镜像上传到镜像堆栈,需先登录。



  • 语法:
  1. docker push [OPTIONS] NAME[:TAG]
复制代码


  • 别名:
  1. docker image push
复制代码


  • 关键参数:




    • -a: 推送全部 tagged 镜像
    • --disable-content-trust: 忽略镜像的校验,默认开启



  • 样例:
  1. docker push myapache:v1
复制代码


5. docker search



  • 功能:




    • 从 Docker Hub 查找镜像。



  • 语法:
  1. docker search [OPTIONS] TERM
复制代码


  • 关键参数:




    • --no-trunc: 表现完备的镜像形貌;
    • -f <过滤条件>: 列出收藏数不小于指定值的镜像。



  • 样例:
  1. # 从 Docker Hub 查找所有镜像名包含 nginx,并且 star 数大于 10 的镜像
  2. docker search -f stars=10 nginx
复制代码


6. docker logout



  • 功能:




    • 登出一个 Docker 镜像堆栈,默以为官方堆栈 Docker Hub。



  • 语法:
  1. docker logout [SERVER]
复制代码


  • 样例:
  1. docker logout
复制代码
镜像下令[部门]

1. docker images



  • 功能:




    • 列出当地镜像。



  • 语法:
  1. docker images [OPTIONS] [REPOSITORY[:TAG]]
复制代码


  • 别名:
  1. docker image ls, docker image list
复制代码


  • 关键参数:




    • -a: 列出当地全部镜像(含中心映像层,默认情况下,过滤掉中心映像层);
    • --digests: 表现镜像的择要信息;
    • -f: 表现满意条件的镜像;
    • --format: 指定返回值的模板文件;
    • --no-trunc: 表现完备的镜像信息;
    • -q: 只表现镜像 ID。



  • 样例:
  1. # 列出本地全部镜像
  2. docker images
  3. # 列出本地镜像中 REPOSITORY 为 ubuntu 的镜像列表。
  4. docker images ubuntu
复制代码


可以团结 grep 利用
2. docker image inspect



  • 功能:




    • 检察镜像具体信息。



  • 语法:
  1. docker image inspect [OPTIONS] IMAGE [IMAGE...]
复制代码


  • 样例:
  1. # 查看镜像详细信息
  2. docker image inspect nginx:1.23.3
复制代码


3. docker tag



  • 功能:




    • 标志当地镜像,将其归入某一堆栈。



  • 语法:
  1. docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
复制代码


  • 别名:
  1. docker image tag
复制代码


  • 样例:
  1. docker tag ubuntu:22.04 myregistry.com/myubuntu:22.04
复制代码


可以发现,打标签后,两者的image id是雷同的,由于两者的镜像内容雷同,只是名字差别。
常会通过这种方式,给镜像名前面加上一串堆栈路径,方便提交。
容器下令[部门]

1. docker run



  • 功能:




    • 创建一个新的容器并运行一个下令。



  • 语法:
  1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
复制代码


  • 别名:
  1. docker container run
复制代码


  • 关键参数:




    • -d: 配景运行容器,并返回容器 ID;
    • -i: 以交互模式运行容器,通常与 -t 同时利用;
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为 主机(宿主)端口:容器端口
    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时利用;
    • --name="nginx-lb": 为容器指定一个名称;
    • -h "mars": 指定容器的 hostname;
    • -e username="ritchie": 设置情况变量;
    • --cpuset-cpus="0-2" 或 --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
    • -m: 设置容器利用内存最大值;
    • --network="bridge": 指定容器的网络毗连范例;
    • --link=[]: 添加链接到另一个容器;
    • --volume, -v: 绑定一个卷
    • --rm: shell 退出的时间自动删除容器



  • 样例:
  1. # 使用 docker 镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为 mynginx。
  2. docker run --name mynginx -d nginx:latest
  3. # 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
  4. docker run -p 80:80 -v /data:/data -d nginx:latest
复制代码
2. docker ps



  • 功能:




    • 列出容器。



  • 语法:
  1. docker ps [OPTIONS]
复制代码


  • 别名:
  1. docker container ls, docker container list, docker container ps
复制代码


  • 关键参数:




    • -a: 表现全部的容器,包罗未运行的。
    • -f: 根据条件过滤表现的内容。
    • --format: 指定返回值的模板文件。如 json 大概 table
    • -l: 表现最新的容器。
    • -n: 列出迩来创建的 n 个容器。
    • --no-trunc: 不截断输出。
    • -q: 静默模式,只表现容器编号。
    • -s: 表现总的文件巨细。



  • 样例:
  1. docker ps -a
复制代码


可以明白到:一个 OS 上可以运行多个 docker

实战操纵

一. 搭建一个 Nginx 服务

底子知识

Web 服务器



  • Web 服务器,一样平常是指“网站服务器”,是指驻留于互联网上某种范例盘算机的步伐。Web 服务器可以向 Web 欣赏器等客户端提供文档,也可以放置网站文件,让全天下欣赏,更可以放置数据文件,让全天下下载。
  • Web 服务器,也称为“WWW 服务器”(英文全写:World Wide Web,翻译成中文:万维网或举世信息网),告急功能是“提供网上信息欣赏服务”。
  • WWW 是 Internet(互联网)的多媒体信息查询工具,是 Internet(互联网)上发展起来的服务,也是发展最快和现在利用最广泛的服务。比方百度就是一个 Web 服务器,提供搜索服务。
Nginx



  • Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向署理服务器;同时也是一个 IMAP、POP3、SMTP 署理服务器。Nginx 可以作为一个 HTTP 服务器举行网站的发布处置处罚,别的 Nginx 可以作为反向署理举行负载平衡的实现。
  • 可以明白 Nginx 是 Web 服务器的一种实现。
  • Nginx 作为 Web 服务器可以向各种欣赏器等客户端提供欣赏服务,比如我们通过手机、电脑、平板可以访问百度来实现对 Web 服务器的访问。


正向署理:由于防火墙的缘故起因,我们不能直接访问谷歌,那么我们可以借助 VPN 来实现,这就是一个简单的正向署理的例子。
这里可以大概发现,正向署理“署理”的是客户端,而且客户端是知道目的的,而目的是不知道客户端是通过 VPN 访问的。比方我们平常利用的 steam 游戏加速器


反向署理:当我们在外网访问百度的时间,着实会举行一个转发,署理到内网去,这就是所谓的反向署理,即反向署理“署理”的是服务器端,而且这一个过程对于客户端而言是透明的。
   安装 Nginx

  Ubuntu 安装 Nginx

  1. sudo apt update
  2. sudo apt install nginx -y
复制代码
启动 Nginx 作为一个网站

  • 检察 Nginx 是否启动
  1. ps -ef | grep nginx
复制代码

  • 假如没有启动,手动启动 Nginx

  1. nginx -v
复制代码




    • 手动启动

  1. sudo nginx
复制代码

  • 访问 Nginx 首页




    • 打开欣赏器,访问 http://<你的服务器IP>,你应该能看到 Nginx 的欢迎页面。


  • 调解 Nginx 的设置




    • 编辑 Nginx 设置文件

  1. sudo vi /etc/nginx/sites-available/default
复制代码




    • 设置示例







    • 生存并退出编辑器,然后重新加载 Nginx 设置

  1. sudo nginx -s reload
复制代码

  • 首页内容




    • 检察 Nginx 默认首页内容

  1. cat /usr/share/nginx/html/index.html
复制代码




    • 内容示例




  • 制止 Nginx




    • 查找 Nginx 主进程并杀死

  1. ps -ef | grep nginx
  2. kill <主进程ID>
复制代码
拉取 Nginx 镜像,启动 Nginx 站点


  • 拉取 Nginx 镜像
  1. docker pull nginx:1.23.3
复制代码




    • 到 https://hub.docker.com/ 上找到 Nginx 镜像


  • 检察当地是否有该镜像
  1. docker images
复制代码

  • 运行镜像
  1. docker run --name nginx1 --rm -it -p 80:80 nginx:1.23.3 bash
复制代码

  • 检察我们现在是在容器的 shell 内里,实行 cat /etc/*release* 检察操纵体系
  1. cat /etc/*release*
复制代码

  • 启动 Nginx
  1. nginx
复制代码



  • 在另一个 shell 窗口中实行 curl 下令,可以看到 Nginx 的欢迎信息返回
  1. curl 127.0.0.1
复制代码








  • 退出 shell 观察再 curl 发现我们已经 ping 不通了,分析 Nginx 是容器内里的而不是服务器内里的
  1. curl 127.0.0.1
复制代码
其他方式拉取 Nginx 镜像


  • 拉取某个构造大概用户定制的镜像
  1. docker pull bitnami/nginx:1.23.4
复制代码

  • 通过 DIGEST 拉取镜像
  1. docker pull nginx@sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
复制代码


  • 找到 1.22.1 版本的 Nginx
检察当地镜像


  • 检察当地镜像
  1. docker images
复制代码

  • 检察镜像现实 ID
  1. docker image inspect 8c9eabeac475
复制代码




    • 输出示例



通过以上步调,你可以乐成搭建并运行一个 Nginx 服务,而且学会怎样利用 Docker 拉取和管理 Nginx 镜像。
二:Docker Hub 上创建自己私有堆栈

底子知识

BusyBox

BusyBox 是一个集成了三百多个最常用 Linux 下令和工具的软件。
它包罗了一些简单的工具,比方 ls、cat 和 echo 等,还包罗了一些更大、更复杂的工具,比方 grep、find、mount 以及 telnet。
BusyBox 是一个集成了一百多个最常用 Linux 下令和工具的软件,它以致还集成了一个 HTTP 服务器和一个 Telnet 服务器,而全部这统统功能却只有戋戋 1M 左右的巨细。因外洋带宽较小,我们拉取该镜像推送到自己的堆栈。
安装 BusyBox

Ubuntu 安装

  1. sudo apt update
  2. sudo apt install -y busybox
复制代码
实行下令

  1. busybox ls
  2. busybox ifconfig
  3. busybox ifconfig | busybox grep lo
复制代码
卸载 BusyBox

Ubuntu 卸载

  1. sudo apt --purge autoremove busybox
复制代码
创建账号


  • 进入 Docker Hub




    • 访问 https://hub.docker.com/,点击注册按钮,输入注册信息。


  • 创建堆栈




    • 登录后点击堆栈,创建一个个人堆栈。
    • 假如提示必要进入,进入自己的邮箱完成激活。
    • 输入堆栈信息,选择可见性(公开或私有),点击创建完成。

推送镜像到堆栈


  • 拉取 BusyBox 镜像
  1. docker pull busybox
复制代码

  • 给镜像打标签
  1. docker tag busybox:latest maxhou/mybusybox:v0.1
复制代码

  • 检察当地镜像
  1. docker images
复制代码
输出示例



  • 推送镜像到堆栈


  • 推送镜像
  1. docker push maxhou/mybusybox:v0.1
  2. The push refers to repository [docker.io/maxhou/mybusybox]
  3. 427701cb9c96: Mounted from library/busybox
  4. v0.1: digest: sha256:2c8ed5408179ff4f53242a4bdd2706110ce000be239fe37a61be9c52f704c437 size: 528
复制代码

  • 在 Docker Hub 堆栈检察




    • 登录 Docker Hub,进入你的堆栈页面,确认镜像已乐成推送。


  • 退出 Docker Hub
  1. docker logout
复制代码
通过以上步调,你可以乐成创建自己的 Docker Hub 私有堆栈,并将 BusyBox 镜像推送到该堆栈。


偶尔候会不太稳固,不科学上网的话,可以利用阿里云~
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表