Docker容器

Docker入门详解:从安装到基本使用

本文主要是介绍Docker入门详解:从安装到基本使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述

本文详细介绍了Docker的入门知识,包括Docker的基本概念、安装方法以及常用命令。文章还涵盖了Docker镜像和容器的管理,以及网络和数据卷的配置。通过本文,读者可以全面了解并掌握Docker的使用方法。

1. Docker简介

1.1 Docker是什么

Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何支持 Docker 的 Linux 机器上,实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。

1.2 Docker的主要特点

  1. 轻量级
    Docker 的容器使用的是主机的操作系统内核,因此不需要安装操作系统。容器之间共享系统内核,因此比虚拟机更加轻量。
  2. 可移植性
    Docker 容器可以在任何支持 Docker 的环境中运行,因此应用能够轻松迁移。
  3. 快速启动
    Docker 容器可以在秒级启动,非常适合开发和测试场景。
  4. 资源利用率高
    Docker 容器共享主机的操作系统,因此大大减少了资源占用,提高了资源利用率。

1.3 Docker与虚拟机的区别

  1. 操作系统的使用
    虚拟机(如 VirtualBox)需要安装操作系统,而 Docker 容器只需要安装应用程序及其依赖。
  2. 资源占用
    虚拟机占用较多资源,而 Docker 容器共享操作系统的资源,占用较少资源。
  3. 启动速度
    虚拟机启动速度较慢,而 Docker 容器可以秒级启动。
  4. 隔离性
    虚拟机提供了完全的隔离性,而 Docker 容器提供了进程级别的隔离。
2. Docker安装指南

2.1 Windows安装Docker

在 Windows 上安装 Docker,需要下载官方的 Docker Desktop 安装包。安装过程如下:

  1. 打开 Docker 官方网站,下载适用于 Windows 的 Docker Desktop。
  2. 运行下载好的安装包,按照提示进行安装。
  3. 安装完成后需要重启电脑。
  4. 重启后,打开 Docker Desktop,安装完成后就可以使用 Docker 了。

2.2 Mac安装Docker

在 Mac 上安装 Docker,也需要下载官方的 Docker Desktop 安装包。安装过程如下:

  1. 打开 Docker 官方网站,下载适用于 Mac 的 Docker Desktop。
  2. 运行下载好的安装包,按照提示进行安装。
  3. 安装完成后需要重启电脑。
  4. 重启后,打开 Docker Desktop,安装完成后就可以使用 Docker 了。

2.3 Linux安装Docker

在 Linux 上安装 Docker,可以通过以下命令安装:

# 更新系统包
sudo apt-get update

# 安装必要的软件包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker的APT仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 更新包索引
sudo apt-get update

# 安装Docker CE
sudo apt-get install docker-ce

# 验证Docker CE 安装成功
sudo docker run hello-world
3. Docker基本概念

3.1 镜像(Images)

Docker 镜像类似于虚拟机的快照,它包含启动容器所需的一切信息。每个 Docker 镜像都是由 Dockerfile 构建的。Dockerfile 是一个文本文件,包含了一系列的命令,用于生成 Docker 镜像。例如:

# 使用官方的 Python 作为父镜像
FROM python:3.7-slim

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到工作目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV NAME World

# 命令行设置
CMD ["python", "app.py"]

3.2 容器(Containers)

容器是镜像的运行实例。它包含了镜像中的所有文件和资源,以及运行时的环境变量、进程等。可以通过 docker run 命令来启动容器。例如:

docker run -it --name my_container python:3.7-slim /bin/bash

3.3 仓库(Repositories)

仓库是集中存放镜像的地方。一个仓库可以包含多个标签,每个标签都指向不同的镜像。例如,ubuntu 仓库包含多个标签,如 16.04, 18.04, 20.04 等。

3.4 Dockerfile介绍

Dockerfile 是一个文本文件,包含了一系列的指令,用于生成 Docker 镜像。Dockerfile 的基本结构如下:

  1. 基础镜像

    FROM ubuntu:18.04
  2. 环境变量设置

    ENV MY_VAR=my_value
  3. 工作目录设置

    WORKDIR /app
  4. 文件复制

    COPY . /app
  5. 命令执行

    RUN apt-get update && apt-get install -y python3
  6. 默认命令
    CMD ["python", "app.py"]
4. Docker常用命令

4.1 Docker启动、停止和删除容器

  • 启动容器

    docker run -it --name my_container ubuntu:latest /bin/bash
  • 停止容器

    docker stop my_container
  • 删除容器
    docker rm my_container

4.2 Docker镜像的拉取、构建和管理

  • 拉取镜像

    docker pull ubuntu:latest
  • 构建镜像

    docker build -t my_image .
  • 查看镜像

    docker images
  • 删除镜像
    docker rmi my_image

4.3 Docker容器的进入、查看和日志

  • 进入容器

    docker exec -it my_container /bin/bash
  • 查看容器

    docker ps
  • 查看容器日志
    docker logs my_container
5. Docker网络和数据卷管理

5.1 Docker网络配置

Docker 提供了多种网络模式,包括 bridgehostnonecontainer。默认情况下,Docker 使用 bridge 模式。可以通过 docker network 命令来创建自定义网络。

# 创建自定义网络
docker network create my_network

# 启动容器并连接到自定义网络
docker run -d --name my_container --network my_network ubuntu:latest /bin/bash

5.2 Docker数据卷的使用

Docker 数据卷是一种持久化的数据存储方式。数据卷不会随容器的生命周期而消失,即使删除容器,数据卷中的数据仍然存在。可以通过 -v 参数来创建数据卷。

# 创建数据卷并挂载到容器
docker run -d -v /data --name my_container ubuntu:latest /bin/bash

5.3 数据卷容器的创建和使用

数据卷容器类似于普通容器,但是它的主要功能是存储数据。数据卷容器可以被多个其他容器共享,从而实现了数据的持久化。

# 创建数据卷容器
docker create --name my_data_volume --mount type=volume,src=my_volume,dst=/data busybox

# 启动容器并挂载数据卷容器
docker run -d --name my_container --volumes-from my_data_volume ubuntu:latest /bin/bash
6. Docker实践案例

6.1 构建个人项目镜像

假设有一个简单的 Python 项目,包含 app.pyrequirements.txt 文件。可以通过以下步骤构建 Docker 镜像:

# 使用官方的 Python 作为父镜像
FROM python:3.7-slim

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到工作目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV NAME World

# 命令行设置
CMD ["python", "app.py"]

构建镜像:

docker build -t my_project .

6.2 运行web应用

假设有一个简单的 Flask 应用,可以通过以下步骤运行:

# 使用官方的 Python 作为父镜像
FROM python:3.7-slim

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到工作目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV NAME World

# 命令行设置
CMD ["python", "app.py"]

构建镜像并运行:

docker build -t my_web_app .
docker run -d -p 8080:80 --name my_web_container my_web_app

6.3 共享数据到容器中

可以通过数据卷将主机上的数据共享到容器中。

# 创建数据卷
docker volume create my_volume

# 启动容器并挂载数据卷
docker run -d --name my_container --mount type=volume,src=my_volume,dst=/data ubuntu:latest /bin/bash

以上是 Docker 的基本介绍和操作指南,通过本文的介绍,读者可以了解 Docker 的基本概念、安装方法、常用命令以及如何构建和运行 Docker 容器。希望读者可以通过本文快速掌握 Docker 的使用方法,并在实际开发中应用。

这篇关于Docker入门详解:从安装到基本使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!