本文将介绍一个方便使用 Docker API 的 Node.js 包 dockerode-sachet。该包提供了对 Docker 引擎的访问控制,并允许您在 Node.js 应用程序中使用 Docker API 以进行各种任务,如构建、监视和执行容器。下面将为您详细介绍使用方法。
安装
首先,您需要安装 Node.js 和 Docker。如果您还没有安装这些软件,请参考 Node.js 和 Docker 的网站进行安装。
npm 安装:
npm install dockerode-sachet
创建 Docker 客户端
要使用 dockerode-sachet 包,您必须先创建一个 Docker 客户端对象。可以使用 Docker 的配置来创建此对象,如下所示:
const Docker = require('dockerode-sachet'); const docker = new Docker({ socketPath: '/var/run/docker.sock' });
socketPath 是 Docker 引擎监听的 Unix 套接字的路径。
现在,您已经准备好与 Docker 引擎通信了。下面,我们将介绍一些您可以使用的方法。
拉取镜像
使用 docker.pull 方法可以从 Docker 镜像仓库中拉取镜像。下面是一个示例:
-- -------------------- ---- ------- -------------------- ----- ------- -- - -- ----- - ------------------- -- ---- ------ --------- - ----------------------------------- ----- -- - -- ----- - ------------------- -- ------- ------- ------- --------- - ------------------ ----- --- ------------ ---------- --- ---
在此示例中,我们拉取了名为 redis 的 Docker 镜像。pull 方法接受 Docker 镜像的名称,以及一个回调函数,告诉您何时完成拉取操作。
创建容器
使用 docker.createContainer 方法可以根据映像创建容器。下面是一个示例:
-- -------------------- ---- ------- ----- ---------------- - - ------ -------- ---- ---------------- --------- ----------- ------------- - ----------- -- ----------- ------ -- - -- ---------------------------------------- ----- ---------- -- - -- ----- - ------------------- -- ------ ---------- --------- - ---------------------- --------------- --- ------------ ----------- ---
在此示例中,我们使用 redis 映像创建了一个容器。createContainer 方法接受容器选项,以及一个回调函数,该回调函数将容器对象作为参数。
在此示例中,我们指定容器运行 redis 服务器,并将其绑定到主机的端口 6379。这意味着将可以在主机上使用 redis。如果您不希望在主机上使用 redis,请删除此选项。
启动容器
使用 container.start 方法可以启动容器。以下是示例代码:
container.start((err) => { if (err) { console.log(`Failed to start container: ${err}`); } console.log('Container was successfully started.'); });
在此示例中,我们使用 container 对象启动了容器。start 方法接受一个回调函数,告诉您是否成功启动了容器。
停止容器
使用 container.stop 方法可以停止容器。以下是示例代码:
container.stop((err) => { if (err) { console.log(`Failed to stop container: ${err}`); } console.log('Container was successfully stopped.'); });
在此示例中,我们使用 container 对象停止了容器。stop 方法接受一个回调函数,告诉您是否成功停止了容器。
删除容器
使用 container.remove 方法可以从 Docker 引擎中删除容器。以下是示例代码:
container.remove({ force: true }, (err) => { if (err) { console.log(`Failed to remove container: ${err}`); } console.log('Container was successfully removed.'); });
在此示例中,我们使用 container 对象删除容器。remove 方法接受一个选项对象,包括 force 属性。如果 force 属性为 true,则将删除运行的容器。如果未指定此选项,则删除必须停止的容器。
结论
上面我们介绍了使用 dockerode-sachet 包的一些基本方法。您可以使用这些方法通过 Node.js 应用程序与 Docker 引擎通信。此外,这些示例代码可以帮助您更好地理解如何将这些方法应用于实际的应用程序。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d0581e8991b448da9b7