制作自己的镜像

2022-06-03  本文已影响0人  林立镇

💽制作自己的镜像

<article class="markdown-body" style="margin: 0px; padding: 0px; box-sizing: border-box; text-size-adjust: 100%; overflow-wrap: break-word; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 15px; line-height: 1.7; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">

为自己的 Web 项目构建镜像

示例项目代码:https://github.com/gzyunke/test-docker
这是一个 Nodejs + Koa2 写的 Web 项目,提供了简单的两个演示页面。
软件依赖:nodejs
项目依赖库:koa、log4js、koa-router

本文档课件配套 视频教程

编写 Dockerfile

<pre class="markdown-code-pre" style="margin: 0px 0px 16px; padding: 0px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 12.75px; overflow-wrap: normal; background-color: rgb(246, 248, 250); border-radius: 3px; line-height: 1.45; overflow: auto; position: relative;">

`FROM node:11
MAINTAINER easydoc.net

复制代码

ADD . /app

设置容器启动后的默认运行目录

WORKDIR /app

运行命令,安装依赖

RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。

例如 RUN npm install && cd /app && mkdir logs

RUN npm install --registry=https://registry.npm.taobao.org

CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。

如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。

例如 CMD cd /app && ./start.sh

CMD node app.js`

</pre>

Dockerfile文档

实用技巧:
如果你写 Dockerfile 时经常遇到一些运行错误,依赖错误等,你可以直接运行一个依赖的底,然后进入终端进行配置环境,成功后再把做过的步骤命令写道 Dockerfile 文件中,这样编写调试会快很多。
例如上面的底是node:11,我们可以运行docker run -it -d node:11 bash,跑起来后进入容器终端配置依赖的软件,然后尝试跑起来自己的软件,最后把所有做过的步骤写入到 Dockerfile 就好了。
掌握好这个技巧,你的 Dockerfile 文件编写起来就非常的得心应手了。

Build 为镜像(安装包)和运行

编译 docker build -t test:v1 .

-t 设置镜像名字和版本号
命令参考:https://docs.docker.com/engine/reference/commandline/build/

运行 docker run -p 8080:8080 --name test-hello test:v1

-p 映射容器内端口到宿主机
--name 容器名字
-d 后台运行
命令参考文档:https://docs.docker.com/engine/reference/run/

更多相关命令

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

</article>

转载自
Docker 快速入门

上一篇下一篇

猜你喜欢

热点阅读