【架构师(第四十七篇)】 服务端开发之认识 Docker

语言: CN / TW / HK

highlight: a11y-dark theme: smartblue


持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情

主要学习内容

使用 Docker 构建 node.js 项目。

Docker 介绍

基于 Docker , 可以把开发环境,测试环境,一键部署到任何一台机器上,只要该机器安装了 Docker

可以说 有了 Docker 就有了一切 。

Docker 是一种虚拟机技术,比传统虚拟机更加简单,轻量。

  • 启动快
  • 资源占用少
  • 体积小

常用命令

image 镜像

  • 下载镜像: docker pull <image-name>:<tag>
  • 查看所有镜像 docker images
  • 删除镜像 docker rmi <image-id>
  • 上传镜像 docker push <username>/<repository>:<tag>,要先注册 hub.docker.com

如果 docker images 出现 REPOSITORY<none> 的情况,可以先运行 docker image prune 删除。

所有的 id 不需要完全输入,只需要输入前几位能够区分开就可以。

container 容器

  • 启动容器docker run -p xxxx:xxx -v=hostPath:containerPath -d --name <container-name><image-name>

    • -p 端口映射
    • -v 数据卷,文件映射
    • -d 后台运行
    • --name 定义容器名称
  • 查看所有容器 docker ps,加 -a 显示隐藏的容器

  • 停止容器 docker stop <container-id>
  • 删除容器 docker rm <container-id>,加 -f 是强制删除
  • 查看容器信息,如 IP 地址 docker inspect <container-id>
  • 查看容器日志docker logs <container-id>
  • 进入容器控制台 docker exec -it <container-id> /bin/sh

启动一个 Docker 容器

下载 nginx 镜像

执行 docker pull nginx,可以看到没有输入版本,默认下载 latest 的。

image.png

查看镜像

执行 docker images,查看所有镜像。

image.png

启动容器

执行 docker run -p 81:80 -d --name myNginx nginx ,会返回一个 id

执行 docker ps 查看容器列表。

image.png

访问 nginx

访问 http://localhost:81/ ,可以看到 nginx 的默认页,说明容器已经启动成功了。

image.png

查看容器信息

执行 docker inspect 9,可以看到容器信息,非常的多。

image.png

查看容器日志

执行 docker logs 9,可以看到容器日志,方便排查问题。

image.png

进入容器控制台

执行 docker exec -it 9 /bin/sh,可以进入到容器的控制台。

image.png

执行 exit 就可以退出控制台。

停止容器

执行 docker stop 9 ,就可以停止容器。

image.png

删除容器

执行 docker ps -a 可以看到刚才被停止的容器依然存在。

执行 docker rm 9 可以删除容器,这次再查看就不在列表里了。

image.png

文件映射

在启动容器的时候加上参数 -v xxxx:xxx,冒号前面是宿主机(本地)的地址,冒号后面是虚拟机的地址

js docker run -p 81:80 -d -v D:/test:/usr/share/nginx/html --name myNginx nginx

这个时候再访问 nginx ,就映射到我们本地的文件上面来了。

image.png