当前位置: 首页 > ops >正文

【5分钟学Docker】Docker快速使用

目录

1. 概述

2. 基本操作

2.1. 镜像操作

2.2. 容器操作

2.3. 运行操作

2.4. 镜像保存

2.5. 镜像分享

3. 高级操作

4. 挂载

4.1. 目录挂载

4.2. 卷映射


1. 概述

Docker 镜像有镜像名称和TAG

2. 基本操作

2.1. 镜像操作

  1. 查看镜像
docker images 
docker image ls
  1. 删除镜像
docker rmi imagesID
docker rmi 名称:TAG
  1. 下载镜像
docker pull nginx:1.26.0
  1. 搜索镜像
docker search nginx

2.2. 容器操作

容器是运行起来的镜像

  1. 运行容器
docker run
  1. 查看运行的容器
docker ps
  1. 停止/启动/重启
docker stop/start/restart CONTAINER_ID
docker stop/start/restart NAMES
  1. 进入镜像
docker exec -it xxxxxNAMES /bin/bash
  1. 查看日志
# 动态获取
docker logs -f 
# 静态查看
docker logs
  1. 删除
docker rm ID
# 强制删除
docker rm -f ID

2.3. 运行操作

  1. 容器的端口可以重复,但是外部机器的端口不能重复
docker run -p <主机端口>:<容器端口> <镜像名>
docker run -d --name mynginx -p 88:80 ngxin:TAG
-d: 后台运行
--name:容器名称
-p 端口映射: 80:88 内部80 外部访问88
  1. 进入容器进行操作
docker exec -it <容器名称> 交换脚本
docker exec -it mynginx /bin/bash

2.4. 镜像保存

  1. 通过docker run 运行后,进行自定义安装或者修改一些配置
  2. 然后提交修改内容:这里的mynginx是一个运行的容器
docker commit -m 'update index.thml' mynginx  mynginx:V1.0[root@sda ~]# docker commit -m 'update index.html' mynginx mynginx:V1.0
sha256:6d11a54e6725515d5559bf96fa6aeeda4b1daf79887eb78e6c3befeaadad27a0
  1. 提交后,通过docker images 可以看到有镜像 myginx V1.0

  1. 然后在对镜像进行保存成tar便于转移到其他机器上
docker save -o mynginx.tar mynginx:V1.0
  1. 加载镜像
 docker load -i mynginx.tar  -q-i 加载tar的文件-q 表示加载过程中不展示加载信息
  1. 运行
 docker run --name mynginx --rm -d -p 89:80 mynginx:V1.0
  1. 查看容器的占用
docker statsCONTAINER ID        NAME                               CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
9b54842016a0        mynginx                            0.00%               10.33MiB / 31.26GiB   0.03%               2.73kB / 2.05kB     0B / 0B             17
e2b4c27dbe59        work_nginx-server_1                0.00%               78.02MiB / 31.26GiB   0.24%               32.7GB / 32.5GB     7MB / 0B            17

2.5. 镜像分享

# 改名
docker tag 旧名字 新名字 # 这个会复制一个新的,而不是直接改,可以把之前的删除就行了
docker tag mynginx:V1.0 mynginx:V2.0[root@sda ~]# docker images
REPOSITORY   TAG    IMAGE ID            CREATED             SIZE
mynginx      V1.0   6d11a54e6725        15 hours ago        192MB
mynginx      V2.0   6d11a54e6725        15 hours ago        192MB

3. 高级操作

  1. 查询所有的容器的ID
docker ps -aq
-a : 所有的镜像
-q : 只打印容器ID[root@sda ~]# docker ps -aq
9b54842016a0
e2b4c27dbe59
694eeba1ae38
975bb0ad0124
0c0f3ddc3b79
  1. 删除所有的容器
docker rm -f $(docker ps -aq)
-f:强制删除
  1. 开机启动
docker --restart always

4. 挂载

4.1. 目录挂载

容器一旦重启或者重新创建,那么文件数据都是丢失,所以这个时候需要通过挂载目录,实现数据持久化

使用参数

-v /aa/aaa:/aaaa/bbb
-v 主机目录:容器内目录
如果一开始没有/aa/aaa 那么他会自动创建。docker会以外部的数据为准,所以外部没有数据
那么内部也是没有数据的

4.2. 卷映射

当我们通过目录挂载时,会发现因为-v是以外部为主,所以当我们使用目录挂载,比如挂载容器的内部的默认配置文件时,会出现如果外部没有这些配置文件,那么就会导致出现内部也没有,那么容器就可能会启动失败,所以这个时候就需要用到卷映射

卷映射

-v 卷名:/etc/nginx
卷名不以./ 为名称就是卷名,否是就是目录挂载
docker run -d -p 89:80 --name mynginx -v /tmp/nginx/html:/usr/share/nginx/html -v ngconfig:/etc/nginx mynginx:V2.0

卷的数据都在哪里呢:默认都在/var/lib/docker/volumes/卷名/_data下

[root@sda html]# cd /var/lib/docker/volumes/ngconfig/
[root@sda ngconfig]# ls
_data
[root@sda ngconfig]# cd _data/
[root@sda ngconfig]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
[root@sda _data]# pwd
/var/lib/docker/volumes/ngconfig/_data
  1. 卷操作
1. 查看卷
docker volume ls 
2. 创建卷
docker volume create test
3. 查看某个卷的详情
docker volume inpspect test
http://www.xdnf.cn/news/4883.html

相关文章:

  • CST矩形喇叭建模
  • 第二节:变量、数据类型与运算符:JS 的基石
  • 佰力博科技与您探讨薄膜极化的类型、机制与应用领域
  • 从零开始的python学习(六)P86+P87+P88
  • 【软件工程】软件多缺陷定位方法总结
  • 从韦斯利・卡普洛看北斗星咨询公司的技术咨询引领之路
  • Docker Compose 部署 MeiliSearch 指南
  • Oracle 执行计划中的 ACCESS 和 FILTER 详解
  • 数据可视化大屏——物流大数据服务平台(二)
  • 从生产事故看软件质量保障:开发规范落实与时间资源矛盾的深度探讨
  • 如何清除windows 远程桌面连接的IP记录
  • kafka 面试总结
  • 仁合医疗核心产品:引领医疗科技新潮流
  • 从 Git 到 GitHub - 使用 Git 进行版本控制 - Git 常用命令
  • 数据同步选择推Push还是拉Pull
  • 45.传导发射整改摸底测试方法
  • 文旅田园康养小镇规划设计方案PPT(85页)
  • C++23 views::chunk_by (P2443R1) 详解
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十三)(1)
  • 3D桌面可视化开发平台HOOPS Native Platform,如何实现3D系统快速开发与部署?
  • stm32 debug卡在0x1FFFxxxx
  • OPC UA 介绍及开发示例
  • 【Survival Analysis】【机器学习】【3】deepseek流程图
  • 22、城堡防御工事——React 19 错误边界与监控
  • 如何用Jmeter实现自动化测试?
  • 【MySQL】存储引擎 - FEDERATED详解
  • WPF之静态资源与动态资源
  • 从 AGI 到具身智能体:解构 AI 核心概念与演化路径全景20250509
  • JVM详解
  • 路由组件1