docker篇(一)

Docker

2026.10.26(周一) 第一天

概述

  • Docker:开源应用容器引擎
  • 2013年初,基于 Go 语言
  • 打包应用+依赖包为容器
  • 沙箱机制,完全隔离
  • 性能开销极低
  • 解决软件跨环境迁移问题

核心概念

  • 镜像:类似操作系统镜像/Java类
  • 容器:镜像运行时的实体,类似Java对象
  • 仓库:保存镜像
  • hub.docker.com

服务管理

systemctl start/stop/restart/status/enable docker

启动/停止/重启/查看状态/开机自启docker

镜像命令

docker images查看镜像

docker search 镜像名 搜索镜像

docker pull 镜像名:版本号 拉取镜像

docker rmi 镜像ID 删除镜像

docker rmi $(docker images -q)

容器命令

  • 查看/创建/进入/启动/停止/删除/查看容器
  • 创建运行:docker run -it --name 容器名 镜像名:版本号 /bin/bash
  • 退出:exit
  • 查看运行:docker ps
  • 查看所有:docker ps -a
  • 进入:docker exec -it 容器名 /bin/bash
  • 启动:docker start 容器名
  • 停止:docker stop 容器名
  • 删除:docker rm 容器名(运行中不可直接删)
  • 删除所有:docker rm -f $(docker ps -aq)
  • 查看信息:docker inspect 容器名

参数说明

  • -i:保持容器运行,常和 -t 用;加 -it 后创建后进入,退出容器自动关闭
  • -t:分配伪终端,常和 -i 用
  • -d:后台/守护模式运行,需 docker exec 进入,退出不关闭
  • -it 创建:交互式容器;-id 创建:守护式容器
  • --name:为容器命名

数据卷

  • 宿主机中的一个目录或文件
  • 容器目录和数据卷绑定后,双方修改立即同步
  • 一个数据卷可被多个容器同时挂载
  • 一个容器可同时挂载多个数据卷
  • 作用:持久化、外部机器与容器交换通信、容器间数据交换
  • 用法:docker run ... -v 宿主机目录:容器内目录 ...
  • 注意:绝对路径;不存在会自动创建;可挂多个
  • 数据卷容器:
    docker run -it --name c3 -v /volume 镜像名 /bin/bash
    docker run -it --name c1 --volumes-from c3 镜像名 /bin/bash
    docker run -it --name c2 --volumes-from c3 镜像名 /bin/bash

MySQL 部署

mkdir ~/mysql

cd ~/mysql

docker run -id

-p 3307:3306

--name c_mysql

-v $PWD/conf:/etc/mysql/conf.d

-v $PWD/logs:/logs

-v $PWD/data:/var/lib/mysql

-e MYSQL_ROOT_PASSWORD=123456

mysql:5.6

MySQL 参数说明

  • -p 3307:3306:容器3306映射到宿主机3307
  • -v $PWD/conf:/etc/mysql/conf.d:配置目录挂载
  • -v $PWD/logs:/logs:日志目录挂载
  • -v $PWD/data:/var/lib/mysql:数据目录挂载
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root密码

补充

  • MySQL 5.6 已停止维护,生产建议用 8.0
  • 运行中的容器不能直接 rm,需先 stop 或 rm -f
  • pull 用镜像名,rmi 用镜像ID,别写反
  • -v 宿主机路径必须是绝对路径
  • -it 退出即停,-id 后台常驻
相关推荐
幽默小吴1 小时前
docker篇(二)
docker
biaov3 小时前
Jenkins + Docker 搭建前端 CI:前端一键打包部署
前端·docker·jenkins
说实话起个名字真难啊19 小时前
实战docker部署dify及注意点
运维·docker·容器
Starry-sky(jing)1 天前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
对象存储与RustFS1 天前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
可涵不会debug1 天前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
姜鱼问生2 天前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
ms72wx2 天前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
java_logo2 天前
Docker 部署 Excalidraw:轻松搭建手绘风格白板
运维·docker·容器·excalidraw·白板·轩辕镜像