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

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/terrylin/p/14092397.html
Copyright © 2011-2022 走看看