【Docker教程】个人学习笔记2:容器化应用程序

本篇内容来源于官方文档:docker docs/Get started/Part 2: Containerize an application


在完成上一篇内容:windows客户端的安装和简单的镜像操作后,我们这篇来学习如何将开发好的应用程序装载进容器中。我们将使用一个运行在Node.js上的简单todo列表管理器。(如果你不熟悉Node.js也不必担心,本文不需要任何JavaScript的相关经验)

获取应用程序

如果你已有自己开发完成的Web项目是再好不过,这里官方同样提供了一个项目的源代码供我们练习。

  1. 使用Git命令克隆源代码

    git clone https://github.com/docker/getting-started-app.git
    
  2. 获取本文作者预下载的内容(已提供在文章顶部)


建立应用程序的镜像

Docker使用Dockerfile脚本来构建容器镜像。(Dockerfile是一个基于文本没有任何扩展指令脚本的文件)

  • 在我们刚下载的getting-started-app目录中,在package.json同目录下创建一个名为Dockerfile的文件

  • 使用任何文本编辑器在文件中添加以下内容

    # syntax=docker/dockerfile:1
    
    FROM node:18-alpine
    WORKDIR /app
    COPY . .
    RUN yarn install --production
    CMD ["node", "src/index.js"]
    EXPOSE 3000
    
  • 在文件夹的空白处,按住Shift键的同时点击鼠标右键,选择在此处打开PowerShell窗口,运行以下代码

    docker build -t getting-started .
    

    代码解读:

    • docker build:使用Dockerfile文件来生成新镜像。(如果本机器未安装Node.js镜像,则需要花费较长时间下载)
    • -t:标记您的镜像,给本次生成的镜像命名
    • .:最后的.是不可遗漏的,它告诉了Docker在此目录下寻找Dockerfile文件
  • 完成镜像的生成后,可以使用docker images命令或者Docker客户端查看当前镜像列表


启动一个应用容器

现在我们可以使用docker run命令来在容器中运行我们刚才生成的镜像

  1. 运行容器并指定需要装载的镜像名称

    docker run -dp 127.0.0.1:3000:3000 getting-started
    

    代码解读:

    • -d:"–detach"的缩写,容器可以在后台保持运行
    • -p:"–publish"的缩写,创建主机和容器之间的端口映射
      • HOST:CONTAINER:将容器的端口映射到主机上的地址,上面代码意味着将容器端口3000发布到主机上的127.0.0.1:3000
    • -dp:当两个标签都为单字母时,可以合并写在一起
  2. 当返回一串字符(容器id)后意味着容器已成功启动,我们可以在浏览器中输入刚才映射的地址进入该应用
    进入运行中的容器应用

  3. 我们正常的创建和完成待办事项,数据都会被存储在后台的数据库中


相关操作命令

在完成本文内容的学习后,可以简单回顾一下和了解相关命令操作

docker build [可选项] <仓库名>:<版本号> <镜像地址>
构建镜像-> docker build -t vieux/apache:2.0 .

docker run [可选项] <镜像名>
创建和运行容器-> docker run -dp 127.0.0.1:3000:3000 --name todo-list getting-started

docker ps
# 查看当前运行中的容器
 
docker rm <container-id>
# 删除指定id的容器
 
docker start/stop <container-id>
# 启动/停止指定id的容器
 
docker images
# 查看镜像列表
 
docker rmi <image-id>
# 删除指定id的镜像
 
docker volume ls 
# 查看volume列表
 
docker network ls
# 查看网络列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值