3.2 Docker最新入门教程-Docker入门-将应用程序容器化

3.2 将应用程序容器化

对于本指南的其余部分,您将使用一个在 Node.js 中运行的简单待办事项列表管理器。如果您不熟悉 Node.js,请不要担心。本指南不需要 JavaScript 经验。

要完成本指南,您需要以下内容:

centos阿里云镜像加速器

  1. 访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  2. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

  1. 配置镜像加速器

    针对Docker客户端版本大于 1.10.0 的用户

    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,registry-mirrors换成自己的地址

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

获取应用程序

在运行该应用程序之前,您需要将应用程序源代码安装到您的机器上。

  1. 使用以下命令克隆入门存储库:

    $ git clone https://github.com/docker/getting-started.git
    # 构建镜像有问题时,把yarn.lock删除掉
    # 更改package.json中版本号 "express": "^4.18.2",
    
  2. 查看克隆存储库的内容。在该getting-started/app目录中,您应该会看到package.json两个子目录(srcspec)。

    加载应用程序后打开的 Visual Studio Code 的屏幕截图

构建应用程序的容器镜像

为了构建容器镜像,您需要使用Dockerfile. Dockerfile 只是一个没有文件扩展名的基于文本的文件。Dockerfile 包含 Docker 用于创建容器镜像的指令脚本。

  1. app目录中,与文件相同的位置package.json,创建一个名为Dockerfile. 您可以使用以下命令根据您的操作系统创建 Dockerfile。

    在终端中,运行下面列出的以下命令。

    将目录更改为app目录。替换/path/to/app为您的getting-started/app目录路径。

     $ cd /path/to/app
    

    创建一个名为Dockerfile.

     $ touch Dockerfile
    

  2. 使用文本编辑器或代码编辑器,将以下内容添加到 Dockerfile:

    # 官方脚本,执行报错
    
    # syntax=docker/dockerfile:1
    #FROM node:latest
    #RUN apk add --no-cache python2 g++ make
    #WORKDIR /app
    #COPY . .
    #RUN yarn install --production
    #CMD ["node", "src/index.js"]
    #EXPOSE 3000
    
    
    # 适合国内
    
    # syntax=docker/dockerfile:1
    FROM node:latest
    #RUN apk add --no-cache python2 g++ make
    WORKDIR /app
    COPY . .
    RUN yarn config set registry https://registry.npm.taobao.org/ &&  yarn install --production
    CMD ["node", "src/index.js"]
    EXPOSE 3000
    
    
  3. 使用以下命令构建容器镜像:

    在终端中,将目录更改为getting-started/app目录。替换/path/to/app为您的getting-started/app目录路径。

    $ cd /path/to/app
    

    构建容器镜像。

    $ docker build -t getting-started .
    

    docker build命令使用 Dockerfile 构建新的容器镜像。您可能已经注意到 Docker 下载了很多“层”。这是因为您指示构建器要从node:12-alpine镜像开始。但是,由于您的机器上没有它,Docker 需要下载镜像。

    Docker 下载镜像后,Dockerfile 中的指令会复制到您的应用程序中,并用于yarn安装应用程序的依赖项。该CMD指令指定从该镜像启动容器时要运行的默认命令。

    最后,-t标志标记您的镜像。将其简单地视为最终镜像的人类可读名称。由于您将镜像命名为getting-started,因此您可以在运行容器时引用该镜像。

    docker build命令末尾.告诉Docker 它应该在当前目录中查找Dockerfile

启动应用程序容器

现在您有了镜像,就可以在容器中运行应用程序了。为此,您将使用docker run命令。

  1. 使用命令启动容器docker run并指定刚刚创建的镜像的名称:

    $ docker run -dp 3000:3000 getting-started
    

    您使用该-d标志以“分离”模式(在后台)运行新容器。您还可以使用-p标志在主机的端口 3000 和容器的端口 3000 之间创建映射。没有端口映射,您将无法访问应用程序。

  2. 几秒钟后,打开 Web 浏览器并访问http://localhost:3000。你应该看到你的应用程序。

    清空待办事项列表

  3. 继续添加一两个项目,看看它是否按预期工作。您可以将项目标记为已完成并删除项目。您的前端已成功在后端存储项目。

此时,您应该有一个正在运行的待办事项列表管理器,其中包含一些由您构建的项目。

如果快速查看 Docker 仪表板,您应该会看到至少有一个正在运行的容器正在运行,该容器正在使用该getting-started镜像并位于 port 上3000

运行教程和应用程序容器的 Docker 仪表板




个人写的小程序,有需求的可以看看:

全网热门头像馆
热门头像|个性头像|高清头像|性感壁纸|美女壁纸|炫酷壁纸|省电壁纸|唯美壁纸
海量资源 应用尽有 免费下载

posted @ 2022-11-23 12:25  eyes-star  阅读(54)  评论(0编辑  收藏  举报