Docker入门

Docker 是一个开源平台,用于开发、部署和运行应用程序。它通过容器化技术,将应用程序及其依赖打包在一起,确保在任何环境中都能一致运行。以下是 Docker 的核心概念和基本使用方法的简要介绍:

1. 容器与镜像

  • 镜像(Image):镜像是一个只读模板,包含运行应用程序所需的代码、库和配置文件。例如,一个镜像可以包含 Ubuntu 操作系统、Python 环境和 Flask 应用。
  • 容器(Container):容器是镜像的运行实例。你可以启动、停止、删除容器,每个容器都是独立的,拥有自己的文件系统和网络接口。

2. Docker 的优势

  • 一致性:开发、测试和生产环境一致,避免“在我机器上能运行”的问题。
  • 隔离性:每个容器相互隔离,确保应用互不干扰。
  • 轻量:容器共享主机操作系统内核,比虚拟机更轻量、启动更快。
  • 可移植性:容器可以在任何支持 Docker 的平台上运行。

3. Docker 的基本命令

  • 拉取镜像:从 Docker Hub 下载镜像。
    docker pull ubuntu
    
  • 运行容器:基于镜像启动容器。
    docker run -it ubuntu /bin/bash
    
  • 列出容器:查看正在运行的容器。
    docker ps
    
  • 停止容器:停止运行中的容器。
    docker stop <container_id>
    
  • 删除容器:删除已停止的容器。
    docker rm <container_id>
    
  • 列出镜像:查看本地镜像。
    docker images
    
  • 删除镜像:删除本地镜像。
    docker rmi <image_id>
    

4. Dockerfile

Dockerfile 是一个文本文件,包含构建镜像的指令。通过 Dockerfile,你可以自定义镜像。

示例 Dockerfile

# 使用基础镜像
FROM ubuntu:20.04

# 安装依赖
RUN apt-get update && apt-get install -y python3

# 复制应用代码
COPY . /app

# 设置工作目录
WORKDIR /app

# 设置启动命令
CMD ["python3", "app.py"]

构建镜像

docker build -t my-python-app .

5. Docker Compose

Docker Compose 用于定义和运行多容器应用。通过 docker-compose.yml 文件,你可以配置多个服务。

示例 docker-compose.yml

version: '3'
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"
  redis:
    image: redis

启动服务

docker-compose up

6. Docker Hub

Docker Hub 是一个镜像仓库,你可以从中拉取官方或社区镜像,也可以推送自己的镜像。

推送镜像

docker tag my-python-app username/my-python-app
docker push username/my-python-app

7. 网络与数据管理

  • 网络:Docker 提供多种网络模式,如 bridgehostnone,默认情况下容器使用 bridge 网络。
  • 数据卷:数据卷用于持久化容器数据,即使容器删除,数据也不会丢失。

创建数据卷

docker volume create my_volume

使用数据卷

docker run -v my_volume:/data ubuntu

8. 总结

Docker 通过容器化技术简化了应用的开发、部署和管理。掌握 Docker 的基本概念和操作后,你可以更高效地构建和运行应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大哎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值