欢迎光临散文网 会员登陆 & 注册

Docker基础——容器化一个应用

2023-08-15 09:31 作者:没用软件开发日记  | 我要投稿

    将一个普通的应用容器化是一件非常简单的事情,我们只需要在项目的根目录下编写一个Dockerfile文件,在文件中注明项目运行依赖的环境信息,项目中哪些是必要部分,不在项目目录中的依赖目录在哪里。

    我们以node项目的Dockerfile为例子:

  • FROM:指定了镜像的运行环境。

  • WORKDIR:指定了工作路径。

  • COPY:指定了需要将工作路径下的哪些文件复制到镜像中。

  • RUN:文件拷贝工作完成后执行的命令

  • CMD:RUN指令执行完成后执行的命令

  • EXPOSE:对外暴露3000端口

这是一个比较简单的Dockerfile示例,有了它我们就可以使用“docker build”制作docker image。

    镜像的制作是分层的,比如此例中的环境依赖node:18-alpine,这是我们指定的工作目录中不存在的,所以需要下载node的镜像作为我们制作的镜像的其中一层

    我们可以再执行 docker build 命令时增加 -t 标记,为构建出的镜像增加标记比如 -t getting-started,这样会让使用者更好的了解到镜像的含义。结尾的“.”意为让docker在命令执行的目录搜索Dockerfile。

    当我们构建好了一个镜像我们就可以使用它初始化一个容器:

    上述命令中 docker run 是使用镜像运行容器的命令,-dp 是 -d -p 的简写:-d(--detach的缩写) 意为后台运行、-p (--publish的缩写)意为映射端口,端口映射的书写格式是 "主机IP : 端口号" : "容器端口号"。在此例中是将ip地址为127.0.0.1的3000端口映射到容器的3000端口上,也就是说我们访问127.0.0.1:3000实际上是访问该容器的3000端口,如果没有端口映射将无法访问到容器应用。

    当我们运行一个容器以后可以使用一下命令查看所有容器:

会得到这样的结果:

    如果只想查看正在运行中的容器,只需要把"-a"标记去掉即可


Docker基础——容器化一个应用的评论 (共 条)

分享到微博请遵守国家法律