zoukankan      html  css  js  c++  java
  • 前端开发Docker快速入门(二)制作镜像并创建容器

    前面一篇《前端开发Docker快速入门(一)》中简单介绍Docker的相关知识和常用命令,本篇侧中前端如何利用Docker部署代码

    示例一:使用Docker来部署Vue前端项目

    一、制作image 文件

    Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。
    image 文件可以看作是容器的模板,Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

    image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。
    举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

    通过下面的./Dockerfile来说明

    # 继承node:12-alpine这个镜象来实现,镜像已经包含nodejs和alpine
    FROM node:12-alpine
    
    # 在alpine中安装nginx
    RUN apk add nginx
    # 将本地nginx.conf的配置覆盖镜象中默认的配置,主要是指定我们前端项目的部署路径
    COPY ./docker/nginx.conf /etc/nginx
    
    # 将VUE项目编译打包后的代码 复制 到镜象中,也就是nginx服务器80端口的root指向目录
    COPY ./dist /kuaizhan/editor
    
    # 暴露80端口
    EXPOSE 80
    
    # 运行nginx服务
    CMD ["nginx", "-g", "daemon off;"]
    

    创建好 Dockerfile 文件以后,使用docker image build命令构建 image镜像。

    # 构建 image 镜像(执行行要在Dockerfile文件同级目录,因为是基于此文件来构建的)

    docker image build -t kz-demo:0.0.1 .
    docker build -t 镜像名称:镜像标签 .

    上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。

    如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。

    如果运行成功,就可以看到新生成的 kz-demo镜像了。

    # 列出本机的所有 image 文件。
    $ docker image ls

    # 删除 image 文件
    $ docker image rm [imageName]

    为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。

    # 发布镜像image文件

    为本地的 image 标注用户名和版本。
    $ docker image tag [imageName] [username]/[repository]:[tag]
    # 实例
    $ docker image tag kz-demos:0.0.1 docker-ref-release-local/kz-demos:0.0.1

    标注好后就可以发布

    docker image push [username]/[repository]:[tag]
    # 实例
    $ docker image push 192.168.1.128:5000/nodejs10:1.0.0  # 推送镜像到本地仓库 

    二、使用image镜像

    1、如果是本地创建或者已经有的镜像

    可以直接基于这个镜像创建运行容器
    $ docker run -itd -p 9090:80 -v ~/dist/static:/kuaizhan/editor/static --name kz-demo kz-demo:0.0.1

    -itd 交互式后台运行容器

    --name 指定容器名称

    -v 本地目录指向容器中的目录

    -p 本地9090端口指向容器的80

    2、如果是基于远程仓库镜像生成容器,按如下操作
    首先,运行下面的命令,将 image 文件从仓库抓取到本地。

    $ docker image pull library/kz-demo:0.0.1

    docker image pull是抓取 image 文件的命令。library/kz-demo是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,kz-demo是 image 文件的名字,0.0.1是镜像的版本。

    由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。

    $ docker image pull hello-world
    抓取成功以后,就可以在本机看到这个 image 文件了。

    $ docker image ls
    现在,运行这个 image 文件。

    $ docker container run -p 3000:80 -it kz-demo:0.0.1 /bin/bash
    docker container run命令会从 image 文件,生成一个正在运行的容器实例。
    注意,docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull命令并不是必需的步骤。

    上面命令的各个参数含义如下:

    -p参数:容器的 80 端口映射到本机的 3000 端口。
    -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。,-i: 交互式操作,-t: 终端, -d: 指定容器的运行模式,后台运行
    koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
    /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

    3、容器相关操作命令

    # 查看所有的容器
    docker ps -a
    # 启动
    docker start b750bbbcfd88 容器id
    # 停止
    docker stop <容器 ID>
    # 删除
    docker rm containerID
    # 进入容器
    docker attach containerID
    docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止
    docker exec -it containerID /bin/bash
    # 导出
    docker export 1e560fca3906 > ubuntu.tar
    cat docker/ubuntu.tar | docker import - test/ubuntu:v1

  • 相关阅读:
    关于iOS中页面启动加载的相关问题汇总
    文件上传与解析漏洞
    XSS跨站攻击
    SQL注入
    DOS&&Linux命令大全
    信息收集相关
    进制转化
    PYQT5 in Python
    将博客搬至CSDN
    Python报文操作模块scapy
  • 原文地址:https://www.cnblogs.com/terrylin/p/14092397.html
Copyright © 2011-2022 走看看