531 字
3 分钟
Docker 核心概念与安装检查
Docker 将应用及其运行依赖打包为镜像,再从镜像创建隔离的容器进程。容器不是虚拟机:它通常共享宿主机内核,但拥有独立的文件系统视图、网络和进程空间。
核心对象
- 镜像(image):只读模板,由多层文件系统组成。
- 容器(container):镜像的运行实例,拥有可写层和运行状态。
- 仓库(registry):保存与分发镜像,例如 Docker Hub 或私有仓库。
- 卷(volume):由 Docker 管理的持久化数据。
- 网络(network):容器之间以及容器与外部通信的连接方式。
- Compose:用一个 YAML 文件描述多容器应用。
安装后检查
docker versiondocker infodocker compose version运行测试容器:
docker run --rm hello-world查看当前对象:
docker psdocker imagesdocker volume lsdocker network lsLinux 权限说明
Docker 守护进程通常拥有较高系统权限。把用户加入 docker 组,基本等同于授予其控制宿主机 Docker 的高权限能力:
sudo usermod -aG docker "$USER"重新登录后生效。生产服务器应限制 Docker Socket 的访问,不要将 /var/run/docker.sock 随意挂载给不可信容器。
第一个容器
docker run --name web-demo -d -p 8080:80 nginx:alpinecurl http://127.0.0.1:8080docker logs web-demodocker stop web-demodocker rm web-demo-p 8080:80 表示把宿主机 8080 端口映射到容器 80 端口。容器内监听地址也必须允许外部连接。
查看容器细节
docker inspect web-demodocker statsdocker top web-demodocker exec -it web-demo sh容器镜像不一定包含 Bash,应根据镜像使用 sh 或其他 Shell。
生命周期原则
容器应以前台主进程为生命周期。不要依赖容器内手工启动后台服务,也不要把临时修改留在容器可写层中。可重复的修改应该进入 Dockerfile,数据应该进入卷或外部存储。
常用清理
docker container prunedocker image prunedocker system dfWARNING
docker system prune可能删除未使用的镜像、容器和网络;增加--volumes还会删除未使用卷。执行前必须确认数据是否已经备份。