快速上手 Docker

22 年 2 月 25 日 星期五
760 字
4 分钟

Docker 是什么

即答:容器(Container)!那么什么是容器呢?容器就是机器上的沙盒进程,与主机的所有其他进程隔离。镜像(image)可以在上面运行;可以部署在本机,虚拟机或者云端;可以移植到任何操作系统上;容器彼此隔离运行自己的软件、二进制文件、和配置。

镜像包含运行应用程序所需的一切依赖、配置、脚本、文件。镜像还包含容器的一些配置,例如环境变量。

使用 Docker 的好处是使应用程序能够在开发、测试或生产环境中以一致的方式运行,我们可以不用再担心环境配置的差异或软件依赖项的冲突。

启动容器

打开命令行 输入下面的命令,启动一个例子。

sh
docker run -d -p 80:80 docker/getting-started

命令中的标志含义:

  • -d 以分离模式运行容器(即后台运行)
  • -p 80:80 将本机的 80 端口映射到容器的 80 端口
  • docker/getting-started 需要使用的镜像名称

可以组合单个字符标志缩短命令:例如将 -d-p 80:80 合并写成 -dp 80:80

打开浏览器 http://localhost:80 访问启动的应用程序

构建镜像

构建应用程序的镜像需要 Dockerfile 文件,切换到 Dockerfile 文件所在目录,使用 docker build 命令构建容器镜像。

sh
docker build -t getiing-started .
  • -t 标志用来给镜像设置名称和标签

    完整命令 --tag <name:tag> 省略标签将使用 latest 作为默认标签

  • . 命令告诉 docker build 在当前目录查找 Dockerfile 文件

使用docker images可以查看本地镜像

更新应用程序

更新容器需要先移除旧容器,移除容器需要先停止。可以使用 Docker 仪表盘删除 Docker 或者使用 CLI 删除容器

  1. 使用 docker ps 命令获取容器 ID

    sh
    docker ps
  2. 使用 docker stop 命令停止容器

    sh
    docker stop <the container id>
  3. 使用 docker rm 命令删除容器

    sh
    docker rm <the container id>

使用force标志可以在单条命令中停止和删除容器例如:docker rm -f <the container id>

标记镜像

一个镜像可以有多个标签,使用tag命令为镜像创建新的标签

sh
docker tag node-docker:latest node-docker:v1.0.0

这会创建一个新的tag指向该镜像,可以使用 rmi 命令删除创建的标签

sh
docker rmi node-docker:v1.0.0

这不会删除原镜像,只会删除对应的标记

数据持久化

当容器创建、更新或删除文件时,由于容器被移除且所有更改都被隔离,这些更改就会丢失。借助卷(volume)可以解决这个问题。卷可以将容器的特点文件系统路径链接到主机。

使用 docker volume create 命令创建卷

sh
docker volume create todo-db

启动应用程序容器时,添加 -v 标志指定卷安装,例如将命名卷挂载到 /etc/todos,这会捕获该目录创建的所有文件

sh
docker run -dp 3000:3000 -v todo-db:/etc/todos

文章标题:快速上手 Docker

文章作者:柃夏chapu

文章链接:https://www.lxchapu.com/posts/quick-start-docker[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。