首页>软件资讯>常见问题

常见问题

Docker基础知识

发布时间:2025-02-19 14:28:52人气:144


Docker 是一个用于开发、部署和运行应用程序的开源平台,它使用容器化技术将应用及其依赖打包成一个独立的容器,从而实现快速部署和可移植性。以下是 Docker 快速入门需要掌握的知识:


1. Docker 核心概念

• 镜像(Image): 只读模板,用于创建容器(例如:Ubuntu、Nginx、MySQL等镜像)。


• 容器(Container): 镜像的运行实例,是一个轻量级的隔离环境。


• 仓库(Registry): 存储镜像的服务(默认是 Docker Hub,如 docker.io)。


2. 安装 Docker

• 不同操作系统的安装方法


• Linux:大多数 Linux 发行版都可以通过包管理器来安装 Docker。以 Ubuntu 为例,可以使用以下命令进行安装:


sudo apt-get update

sudo apt-get install docker.io

• Windows:在 Windows 上可以安装 Docker Desktop,它提供了一个简单的图形化界面,方便用户管理 Docker 容器和镜像。可以从 Docker 官方网站下载 Docker Desktop 的安装包,然后按照安装向导进行安装。


• macOS:同样可以安装 Docker Desktop for Mac,安装过程与 Windows 类似。


3. 基础命令

镜像操作

# 拉取镜像(从 Docker Hub)

docker pull ubuntu:20.04

# 查看本地镜像

docker images

# 删除镜像

docker rmi <镜像ID或名称>

容器操作

# 启动新容器(并进入交互模式)

docker run -it ubuntu:20.04 /bin/bash

# 启动容器(后台运行)

docker run -d --name my_nginx nginx

# 查看运行中的容器

docker ps

# 查看所有容器(包括已停止的)

docker ps -a

# 停止容器

docker stop <容器ID或名称>

# 启动已停止的容器

docker start <容器ID或名称>

# 删除容器

docker rm <容器ID或名称>

端口映射与目录挂载

# 映射主机端口 8080 到容器端口 80

docker run -d -p 8080:80 --name web nginx

# 挂载主机目录到容器

docker run -d -v /host/path:/container/path nginx

4. 构建自定义镜像

Dockerfile 示例

创建一个文件 Dockerfile:


# 基础镜像

FROM nginx:alpine


# 复制文件到容器

COPY index.html /usr/share/nginx/html


# 设置启动命令(可省略,因为基础镜像已定义)

CMD ["nginx", "-g", "daemon off;"]

构建镜像

docker build -t my-nginx:v1 .

运行自定义镜像

docker run -d -p 80:80 my-nginx:v1

5. 数据持久化

使用数据卷(Volume)

# 创建数据卷

docker volume create my_volume


# 挂载数据卷到容器

docker run -d -v my_volume:/data --name my_container nginx

绑定挂载(Bind Mount)

# 直接挂载主机目录

docker run -d -v /host/path:/container/path nginx

6. 网络配置

# 创建自定义网络

docker network create my_network


# 将容器连接到网络

docker run -d --network my_network --name app1 nginx

docker run -d --network my_network --name app2 nginx


# 容器间通过名称通信(例如在 app1 中 ping app2)

docker exec -it app1 ping app2

7.


Docker Compose(多容器管理)

安装 Docker Compose

# Linux

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose.yml 示例

version: '3'

services:

  web:

    image: nginx

    ports:

      - "8080:80"

    volumes:

      - ./html:/usr/share/nginx/html

  db:

    image: mysql:5.7

    environment:

      MYSQL_ROOT_PASSWORD: example

启动服务

docker-compose up -d

8. 常用技巧

清理无用资源:


docker system prune -a

查看日志:


docker logs <容器ID>

进入运行中的容器:



上一条:Anaconda是Python中最好用的数据科学环境管理库

下一条:Docker环境部署 DeepSeek 模型