每天一个 Linux 知识:Docker 容器

Docker 是一个基于 容器技术(Container) 的平台,用来打包、分发和运行应用程序。容器是一种轻量级、隔离性强的运行环境,它使用 Linux 内核的 NamespaceCgroup 技术实现资源隔离,比传统虚拟机更加高效。

每天一个 Linux 知识:Docker 容器

简单对比:

项目虚拟机(VM)Docker 容器启动速度慢(分钟级)快(秒级)资源开销高(需要完整 OS)低(共享内核)部署方式镜像 + OS镜像即可可移植性中强

Docker 解决的问题很简单:

“在我的电脑上好好的”不再成为借口。

Docker 的核心概念

理解以下三个核心概念,是掌握 Docker 的基础:

1. 镜像(Image)

镜像是一个只读模板,例如一个 Ubuntu 系统、一套 Python 环境或一个 nginx 服务。

镜像可以包含:

  • 应用程序
  • 库文件
  • 系统工具
  • 配置

常用命令:

docker pull nginx
docker images
docker rmi nginx

每天一个 Linux 知识:Docker 容器


2. 容器(Container)

容器是镜像的运行实例,就像基于 class 创建的 object 一样。

容器特性:

  • 运行时有独立的文件系统
  • 生命周期可以启动、停止、删除
  • 可保持数据(卷 Volume)

常用命令:

docker run -d --name web nginx
docker ps -a
docker stop web
docker rm web

每天一个 Linux 知识:Docker 容器


3. 仓库(Registry)

存放镜像的地方,例如:

  • Docker Hub(官方)
  • Harbor(企业私有)
  • GitHub Container Registry

拉取镜像:

docker pull ubuntu

上传镜像(需登录):

docker push myrepo/myimage

Docker 安装与服务管理

以 CentOS / RHEL 为例:

yum install -y docker
systemctl enable --now docker

查看 Docker 状态:

systemctl status docker

常用 Docker 命令行

下面将常用命令按场景总结,让你从实践中理解 Docker。

1. 创建并运行容器

最常用的 run 命令:

docker run -it --name test ubuntu bash

参数含义:

  • -it:交互模式进入终端
  • –name:容器名称
  • ubuntu:镜像名
  • bash:运行命令

后台运行:

docker run -d --name web nginx

指定端口映射:

docker run -d -p 8080:80 nginx

表明访问 服务器:8080 就等同访问容器内的 80 端口。


2. 查看容器状态

docker ps
docker ps -a

查看容器资源:

docker top web
docker stats

3. 进入运行中的容器

docker exec -it web bash

4. 停止与删除容器

docker stop web
docker rm web

一次性删除所有容器:

docker rm -f $(docker ps -aq)

5. 查看日志

docker logs -f web

数据持久化:Volume 和 Bind Mount

1. Volume(推荐)

docker volume create mydata
docker run -d -v mydata:/usr/share/nginx/html nginx

Volume 的优点:

  • 持久化数据
  • 镜像与容器之间解耦
  • 方便迁移

2. Bind Mount(直接挂载宿主机目录)

docker run -d -v /data/web:/usr/share/nginx/html nginx

适用于:

  • 本地开发
  • 与宿主机文件实时同步

构建镜像:Dockerfile

Dockerfile 是一个构建镜像的脚本文件,例如:

FROM python:3.10
COPY app.py /app/app.py
WORKDIR /app
CMD ["python", "app.py"]

构建镜像:

docker build -t myapp:v1 .

运行:

docker run -d -p 8000:8000 myapp:v1
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...