Docker学习

Docker 是一个开源平台,用于开发、传输和运行应用程序。它利用容器化技术,将应用程序及其所有依赖项打包到一个标准化的单元(即容器)中,确保在任何环境中都能一致地运行。以下是 Docker 的详细介绍以及常用命令的说明。

一、Docker 基本概念

1、Docker 镜像 (Image): 镜像是一个轻量级的、可执行的软件包,包含运行应用程序所需的代码、库、环境变量和配置文件。镜像是容器的基础,容器从镜像创建。

2、Docker 容器 (Container): 容器是镜像的一个实例。它是一个隔离的运行环境,包含应用程序及其所有依赖项,保证应用在不同的环境中都能一致运行。容器可以启动、停止、移动以及删除。

3、仓库(Repository) 仓库是用来存储和分享镜像的地方,可以分为本地仓库和远程仓库。本地仓库存储在本地机器上,而远程仓库则可以通过网络访问。仓库中的每个镜像都有一个唯一的标识符,称为镜像标签,用来唯一标识和区分不同的镜像版本。

4、Dockerfile: Dockerfile 是一个文本文件,包含了一系列指令来创建 Docker 镜像。它定义了镜像的基础镜像、所需的软件包和应用程序的配置等。

5、Docker Compose : Docker Compose 是一个用于定义和运行多个容器的工具,通过一个 docker-compose.yml 文件可以定义所有相关的服务、网络和卷等。

二、常用的命令

1、镜像管理

(1)列出所有镜像

bash 复制代码
docker images

(2) 拉取镜像

bash 复制代码
docker pull <image>:<tag>
# 例如:docker pull nginx:latest

(3) 删除镜像

bash 复制代码
docker rmi <image>:<tag>
# 例如:docker rmi nginx:latest

(4) 构建镜像

bash 复制代码
docker build -t <image>:<tag> <path>
# 例如:docker build -t myapp:latest .

2、容器管理

(1) 列出所有容器(包括停止的)

bash 复制代码
docker ps -a

(2) 启动容器

bash 复制代码
docker start <container_id>
# 例如:docker start my_container

(3) 停止容器

bash 复制代码
docker stop <container_id>
# 例如:docker stop my_container

(4) 删除容器

bash 复制代码
docker rm <container_id>
# 例如:docker rm my_container

(5) 运行容器

bash 复制代码
docker run [OPTIONS] <image>:<tag>
# 例如:docker run -d -p 80:80 nginx:latest

常用选项:

  • -d:后台运行容器
  • -p:端口映射(host_port:container_port
  • --name:为容器指定一个名称
  • -v:挂载卷(host_path:container_path
  • -e:设置环境变量(KEY=VALUE

(5)查看容器日志

bash 复制代码
docker logs <container_id>
# 例如:docker logs my_container

(6) 进入容器

bash 复制代码
docker exec -it <container_id> /bin/bash
# 例如:docker exec -it my_container /bin/bash

3、Docker Compose

(1) 启动服务

bash 复制代码
docker-compose up

(2) 后台运行服务

bash 复制代码
docker-compose up -d

(3) 停止服务

bash 复制代码
docker-compose down

(4) 查看服务日志

bash 复制代码
docker-compose logs

(5) 构建服务

bash 复制代码
docker-compose build

4、网络和卷管理

(1) 列出网络

bash 复制代码
docker network ls

(2) 创建网络

bash 复制代码
docker network create <network_name>

(3) 删除网络

bash 复制代码
docker network rm <network_name>

(4) 列出卷

bash 复制代码
docker volume ls

(5) 创建卷

bash 复制代码
docker volume create <volume_name>

(6) 删除卷

bash 复制代码
docker volume rm <volume_name>
相关推荐
solicitous17 分钟前
之前说到收到一个口头机遇,续集来了
学习·生活
猿类崛起@28 分钟前
CherryStudio配置本地MCP服务器实现FileSystem本地文件系统读写操作
人工智能·学习·程序员·大模型·agent·ai大模型·mcp
有毒的教程1 小时前
Ubuntu 清理 Docker 镜像 / 容器 / 缓存 完整教程
ubuntu·缓存·docker
阿干tkl1 小时前
openEuler 系统 Kubernetes + Harbor 学习测试环境详细部署指南
容器·kubernetes
深蓝海拓1 小时前
基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划
笔记·python·qt·学习·plc
不灭锦鲤2 小时前
网络安全学习第163天
学习·安全·web安全
鱼鳞_2 小时前
Java学习笔记_Day20(二叉树)
java·笔记·学习
天草二十六_简村人2 小时前
阿里云SLS采集jvm日志(上)
java·运维·数据库·后端·阿里云·容器·云计算
winfreedoms2 小时前
宿主机有网、Docker 容器不能解析域名?用 daemon.json 一键配置永久 DNS
运维·docker·容器·json
CDA数据分析师干货分享2 小时前
石油工程专业炼油厂一线岗位转行数据分析岗,CDA数据分析师二级学习经验
深度学习·学习·数据挖掘·数据分析·cda证书·cda数据分析师