docker 安装Nginx镜像demo

 为了更好的理解,在正式开始之前,先熟悉下相关概念

镜像(Image)、容器(Container)、仓库(Repository)。

1.1镜像

   docker镜像是使用Dockerfile脚本,将你的应用以及应用的依赖包构建而成的一个应用包,它通常带有该应用的启动命令。而这些命令会在容器启动时被执行,也就是说你的应用在启动容器时被启动。

镜像的创建,需要通过配置Dockerfile脚本,然后执行docker build命令来创建。

1.2 容器

 容器提供的核心概念是隔离,提供三种隔离类型:

  • 工作区隔离(流程、网络)
  • 资源隔离(cpu\内存)
  • 文件系统隔离(联合文件系统)

不仅可以分发应用程序,还可以以实用的方式交付运行应用程序所需的整个环境。

  容器是使用 docker run --name 容器名 镜像 命令创建的,独立于宿主机(服务器)的沙箱,也可以理解为一个带有特殊结构的盒子,主要作用就在于给镜像提供运行空间和环境,并执行镜像的指令。

1.3 仓库

  不是存容器,而是存储docker镜像。

可以把docker镜像通过push命令推送到docker仓库,也可以通过用docker命令pull 把镜像拉取下来。

关系

使用docker前,你必须先安装它。

首先要有镜像,有了镜像才能基于镜像创建容器,才能把镜像存储在仓库。(镜像是基础,容器是镜像使用者,仓库是镜像的管理员。)

 基础镜像通常不需要自己创建,docker官方有提供很多基础镜像供用户使用,比如nodejs镜像,java镜像,mongodb镜像,nginx镜像等等

二  镜像

而创建镜像,首先得配置Dockerfile脚本。镜像是基于Dockerfile脚本来构建的。

2.1 基础镜像

  docker有这么一种机制,在构建镜像时,它可以依赖一个父镜像作为底层镜像,与当前正要被构建的镜像一起打包,从而构建成一个全新的镜像。而这个被用作依赖的父镜像,就是基础镜像。

  可以理解为,一个应用它不是随处可运行的,它的运行需要依赖操作系统环境和对应的依赖().

  • 因此,在配置项目Dockerfile创建镜像脚本之前,需要先确立一个基础镜像。主要是通过在Dockerfile脚本中使用From命令指定依赖一个父镜像(基础镜像)。
  • 基础镜像通常不需要自己创建,docker官方有提供很多基础镜像供用户使用,比如nodejs镜像,java镜像,mongodb镜像,nginx镜像等等.

2.2 Dockerfile脚本构成

docker镜像是通过配置Dockerfile脚本,然后执行docker build命令来创建的。

Dockerfile脚本通常分为以下四部分:

  • 基础镜像信息   --只有一个From指令,指定依赖的基础镜像
  • 维护者信息      --只有一个MAINTAINER指令,用于描述该镜像的维护者信息
  • 镜像操作指令   --很多:
  • 容器启动时执行的指令 
    • --CMD 每个 Dockerfile 只能有一条 CMD 命令,可被 docker run 提供的参数覆盖。
    • ENTRYPOINT 它不会被 docker run 提供的参数覆盖

以下介绍镜像操作指令:

COPY
COPY指令用于拷贝宿主机的源目录/文件到容器内的某个目录。接受两个参数,源目录路径和容器内目录路径。

ADD
功能和用法与COPY指令基本相同,不同在于使用ADD指令拷贝时,如果拷贝的是压缩文件,拷贝到容器中时会自动解压为目录。

WORKDIR
指定RUN、CMD、ENTRYPOINT 指令的工作目录

RUN
RUN是核心指令,它接受命令作为参数并用于创建镜像。命令较多时可用""换行。

USER
USER命令用于设置运行容器的UID。

VOLUME
VOLUME命令用于让你的容器访问宿主机上的目录。一般用来存放数据库和需要保持的数据等

ONBUILD
配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。

ENV
ENV命令用于设置环境变量,在容器内被脚本或者程序调用。

EXPOSE
EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。

 

2.3 镜像的创建

镜像是基于Dockerfile脚本,使用docker build命令创建的。上面已经对Dockerfile做了介绍。下面来说说如何使用Dockerfile脚本创建。
语法:

 docker build [OPTIONS] PATH

PATH为Dockerfile脚本所在的目录,通常放在项目根目录下,使用"."表示。
-t 标记,用来添加tag,指定新的镜像信息,比如镜像名称,标签。

2.4  本地镜像的管理

  • 1,查看镜像:docker images
  • 2,删除镜像:docker rmi 镜像
  • 3,镜像重命名:docker tag 原镜像tag 新镜像tag
  • 4,查看镜像创建历史:docker history 镜像
  • 5,镜像归档:docker save 镜像
  • 6,基于归档文件创建镜像:docker import 归档文件 新镜像tag

2.5  镜像的使用

镜像通过docker run命令使用的,这是关于容器部分的操作。

 

三 demo验证

我本地做测试用的:Nginx demo

我们要部署的服务是用 Nginx 来 server 一个简单的 HTML 文件 html/index.html

 

3.1 准备工作,打开一个终端:

$ mkdir docker-demo
$ cd docker-demo
$ mkdir html
$ echo '<h1>Hello Docker!</h1>' > html/index.html

生成一个页面。

3.2 接下来在当前目录创建一个叫 Dockerfile 的新文件

FROM nginx
COPY html/* /usr/share/nginx/html

from 相关知识参照上一篇。

第二行把我们的静态文件复制到镜像的 /usr/share/nginx/html 目录下。也就是 Nginx 寻找静态文件的目录。

3.3 构建镜像

$ docker build -t docker-demo:0.1 .

最好在刚才创建的这个目录中运行 docker build。如果是其他目录,docker 会把当前目录的所有文件作为上下文发送给负责构建的后台进程。

3.4. 查看镜像

docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker-demo         0.1                 54c5fe4fd4d0        13 minutes ago      126MB

nginx               latest              c7460dfcab50        6 days ago          126MB

这行命令中的名称 docker-demo 可以理解为这个镜像对应的应用名或服务名,0.1 是标签。

3.5. 运行镜像

docker run --name docker-demo -d -p 8080:80 docker-demo:0.1

打开浏览器,输入:http://127.0.0.1:8080/

查看 运行的容器

docker container ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES

5c95072fb6ac        docker-demo:0.1     "nginx -g 'daemon of…"   4 minutes ago       Up 4 minutes        0.0.0.0:8080->80/tcp   docker-demo

如果要停止并 删除

$ docker container stop docker-demo
$ docker container rm docker-demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Docker上的Nginx镜像,可以按照以下步骤进行操作: 1. 打开终端或命令提示符,运行以下命令以下载最新版本的Nginx镜像: ```shell docker pull nginx ``` 这将从Docker Hub上下载最新的Nginx镜像。 2. 如果你需要下载特定版本的Nginx镜像,可以使用以下命令: ```shell docker pull nginx:<版本号> ``` 将 `<版本号>` 替换为你想要下载的具体版本号。 3. 安装完成后,可以通过运行以下命令来启动一个Nginx容器: ```shell docker run --name nginx -p 9001:80 -d nginx ``` 这将在Docker中运行一个名为"nginx"的容器,并将容器的80端口映射到主机的9001端口。 4. 如果你需要访问容器内的Nginx配置文件或其他文件,可以使用以下命令将它们复制到宿主机: ```shell docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d docker cp nginx:/usr/share/nginx/html /home/nginx/ ``` 这将把容器内的`/etc/nginx/nginx.conf`、`/etc/nginx/conf.d`和`/usr/share/nginx/html`文件夹复制到宿主机的`/home/nginx/conf`和`/home/nginx/`目录中。 现在,你已经成功地安装Docker上的Nginx镜像,并可以访问和配置它了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker 安装 Nginx 容器 (完整详细版)](https://blog.csdn.net/BThinker/article/details/123507820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Docker 安装 Nginx](https://download.csdn.net/download/weixin_38698863/14893474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值