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 的进程隔离,共享内核,占用资源少,启动也更快。
安装
配置
- 非 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 获取容器状态