Skip to the content.

Docker

docker 如何实现的

资源

https://stackoverflow.com/questions/19585028/i-lose-my-data-when-the-container-exits

这个东西有什么创新吗?

https://github.com/google/nsjail

docker vs podman ?

为什么 podman 不需要一个 daemon ?

不知道咋实现的

其他环境中的的 docker

https://github.com/sickcodes/Docker-OSX https://github.com/dockur/windows

Failed to start Docker Application Container Engine.

的解决办法:

极度稀有的场景,都是在虚拟机被外部杀掉的场景: https://stackoverflow.com/questions/40524602/error-creating-default-bridge-network-cannot-create-network-docker0-confli

sudo rm -rf /var/lib/docker/network
sudo systemctl start docker

docker 常用命令

安装部署:

sudo yum -y install docker
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -a -G docker "$USER"
# sudo groupadd docker
# sudo gpasswd -a "$USER" docker

观测运维:

docker stats

docker 不常用命令

save 和 load 一个 docker image 如此简单 docker save -o hello-world.tar hello-world:latest docker load -i hello-world.tar

所以,docker build 相对于 docker run 是走的不同的网络吗?

docker compose 做什么的

1. 多容器编排的复杂性

 场景                不用 Compose             使用 Compose
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 启动一个 Web 应用   手动 docker run 3-4 次   docker compose up 一键启动
 容器间网络          手动创建网络、指定 IP    自动创建专用网络,服务名即 DNS
 依赖关系            手动控制启动顺序         depends_on 自动处理
 配置管理            一堆 -e -v -p 参数       统一写在 docker-compose.yml

2. 开发环境一致性

# docker-compose.yml 即文档
services:
  web:
    build: .
    ports: ["8080:80"]
    depends_on: [db, redis]
  db:
    image: postgres:15
    volumes: ["pgdata:/var/lib/postgresql/data"]
  redis:
    image: redis:alpine

解决: "在我机器上能跑" 的问题

3. 与 Kubernetes 的关系

          Docker Compose   Kubernetes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 定位     单机/开发环境    生产级集群编排
 复杂度   低,YAML 简单    高,概念多
 规模     单机多容器       跨节点数千 Pod

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
一句话总结

▌ Docker Compose = 单机多容器的"一键管理器"

解决开发、测试阶段快速搭建完整应用栈(Web + DB + Cache)的需求,是 K8s 的"轻量前身/补充"。

掌握下基本的 docker 技术吧

https://training.play-with-docker.com/

docker image 的基本管理

  1. docker images - 查看所有镜像及其大小
  2. docker system df - 查看 Docker 整体磁盘使用情况
  3. docker system df -v - 详细查看各镜像、容器、卷的占用
🧀  docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          50        12        59.18GB   29.13GB (49%)
Containers      54        1         568.5MB   568.5MB (99%)
Local Volumes   0         0         0B        0B
Build Cache     207       0         6.933GB   403.7MB
🧀  docker images
                                                                                                                                                  i Info →   U  In Use
IMAGE                                                                                                  ID             DISK USAGE   CONTENT SIZE   EXTRA
fedora:latest                                                                                          62d2b462296d        165MB             0B    U
ghcr.io/metacubex/metacubexd:latest                                                                    3bce53bc7fa2       55.6MB             0B    U
hello-world:latest                                                                                     1b44b5a3e06a       10.1kB             0B    U
martins3:fedora                                                                                        6335fa894a32       1.88GB             0B    U
openeuler/openeuler:22.03-lts-sp2                                                                      346898c7802a        317MB             0B
typesense/typesense:0.20.0                                                                             29958b412d6c        656MB             0B    U
  1. 查看悬空镜像(dangling)

docker images -f “dangling=true”

一键清理所有未使用资源(推荐) 删除所有停止的容器、未使用的网络、悬空镜像、构建缓存

docker system prune -a

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。