Docker 简单使用

date
Dec 1, 2020
Last edited time
Jan 14, 2024 11:33 AM
status
Published
type
Post
slug
docker-and-docker-compose
tags
Docker
Config
Note
Linux
summary
Docker 是一个容器化的解决方案,可以帮助我们创建和管理统一的运行环境。它使用镜像来构建容器,并且可以轻松地运行、停止和删除容器。我们可以使用 Docker-compose 来定义和管理多个容器应用的部署。安装 Docker 后,我们可以使用一些常用的命令来操作镜像和容器,如查看镜像列表、删除镜像、启动容器、停止容器等。我们还可以修改 Docker 的配置文件以满足特定需求。除了 Docker,还有一些其他工具和应用可以帮助我们更方便地管理容器化应用,如 Lazydocker、Portainer、Watchtower、Composerize 等。
在开发过程中,我们经常会听到“在我这是好的”、“系统环境问题”等等一些说法。配置一致的运行环境也确实很麻烦,但我们可以用容器化方案来解决这样的问题。
因为系统交付需要在客户处私有化离线部署,之前我已经将原有的虚拟机部署方式转换为了基于 docker-compose 的部署方案。但发现同组的一些小伙伴对 Docker 还是不熟悉,于是在此整理一下,也梳理下给他们分享用法时的思路,这次就不涉及到原理相关,仅仅为了使用。
 
两个概念:
  • image (镜像):包含完整的软件运行时环境的一个二进制“模板”文件。其中有代码、运行时、系统工具、库文件及配置文件等。
  • container(容器):将 image 运行起来的一个进程,即把“模板实例化”。
可以将 image “类比”为虚拟机系统镜像,container 则为虚拟机。但区别在于虚拟机是一个完整的操作系统,独立内核,占用资源也较多,而 Docker 是基于 namespace 的进程隔离,共享内核,占用资源少,启动也更快。
notion image

安装

配置

  • 非 root 用户执行,docker 命令执行需要 sudo
  • 开机自启动
  • 配置文件修改
位置:/etc/docker/daemon.json 常见修改如下

常用操作

 

Docker-Compose

以开源项目 umami 为例,其部署的 docker-compose.yml 文件如下
在此文件夹下执行:
 

建议

不要使用 Alpine 基础镜像,使用 Ubuntu
 

应用 / 工具

  • Lazydocker ——— 终端命令行界面管理容器,省去手动键入各种命令
  • Portainer ——— Web 页面可视化操作容器应用
  • Watchtower  ——— 更新运行中的容器化应用
  • Composerize ——— 将 docker run 命令转换为 docker-compose.yml 配置文件
  • CTop ——— 类 top 命令效果,展示容器监控
  • Topic ——— top in container 获取容器状态
 

2024 © HK