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

news2025/5/15 13:04:28

目录

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 stats

CONTAINER 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.coloradmin.cn/o/2376113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv 一些简单的设置

输出当前程序启动的路径 可能会出现 &#x1f527; 设置 C17 标准&#xff08;解决 std::filesystem 报错&#xff09; 在 VS 中&#xff0c;右键项目 → 属性。 选择左边的 “C/C” → “语言” 找到 C语言标准&#xff08;C Language Standard&#xff09;选项。 设置为&…

监控易运维管理软件:架构稳健,组件强大

在当今的信息化时代&#xff0c;运维管理对于企业的稳定运营至关重要。一款好的运维管理软件&#xff0c;不仅能够帮助企业高效管理IT基础设施&#xff0c;还能提升运维效率&#xff0c;降低运维成本。今天&#xff0c;我要给大家介绍的&#xff0c;就是我们公司自主研发的监控…

数字IC后端零基础入门基础理论(Day2)

数字IC后端零基础入门基础理论&#xff08;Day1&#xff09; Placement Blockage: cell摆放阻挡层。它是用来引导工具做placement的一种物理约束或手段&#xff0c;目的是希望工具按照我们的要求来做标准单元的摆放。 它主要有三种类型&#xff0c;分别是hard placement bloc…

零成本打造专属AI图像处理平台:IOPaint本地部署与远程访问指南

文章目录 前言1.什么是IOPaint&#xff1f;2.本地部署IOPaint3.IOPaint简单实用4.公网远程访问本地IOPaint5.内网穿透工具安装6.配置公网地址7.使用固定公网地址远程访问总结 前言 移动摄影的普及使得记录生活变得轻而易举&#xff0c;然而获得一张高质量的照片往往需要付出不…

操作系统-物理结构

操作系统使用read系统调用&#xff0c;将逻辑地址转&#xff08;对于用户来说逻辑地址容易计算&#xff0c;因为各个逻辑块都相邻&#xff09;成了逻辑块号和块内偏移量&#xff0c;并根据分配存储方式&#xff0c;将逻辑块号转成物理块号和块内偏移量 对于用户来说的文件的一…

《AI大模型应知应会100篇》第64篇:构建你的第一个大模型 Chatbot

第64篇&#xff1a;构建你的第一个大模型 Chatbot 手把手教你从零开始搭建一个基于大模型的聊天机器人 摘要 你是否想过&#xff0c;自己也能构建一个像 ChatGPT 一样能对话、能思考的聊天机器人&#xff08;Chatbot&#xff09;&#xff1f;别担心&#xff0c;这并不需要你是…

STM32 片上资源之串口

STM32 片上资源之串口 1 串口介绍1.1 初步介绍1.2 主要特性1.2.1 USART特性1.2.2 UART特性 1.3 主要寄存器1.4 波特率计算1.5 常用工作模式1.5.1 轮询模式&#xff1a;1.5.2 中断模式&#xff1a;1.5.3 DMA模式&#xff1a; 1.6 常见应用1.7 注意事项 2 软件层面协议2.1 基本概…

职坐标IT培训:互联网行业核心技能精讲

在互联网行业高速迭代的今天&#xff0c;掌握全链路核心技能已成为职业发展的关键突破口。职坐标IT培训聚焦行业需求&#xff0c;系统拆解从需求分析到系统部署的完整能力模型&#xff0c;助力从业者构建多维竞争力。无论是产品岗的用户调研与原型设计&#xff0c;还是技术岗的…

FlashInfer - 介绍 LLM服务加速库 地基的一块石头

FlashInfer - 介绍 LLM服务加速库 地基的一块石头 flyfish 大型语言模型服务中的注意力机制 大型语言模型服务&#xff08;LLM Serving&#xff09;迅速成为重要的工作负载。Transformer中的算子效率——尤其是矩阵乘法&#xff08;GEMM&#xff09;、自注意力&#xff08;S…

MySQL 学习(七)undo log、redo log、bin log 的作用以及持久化机制

目录 一、前言二、三大日志的概念、作用、存储位置2.1 bin log 二进制执行日志2.2 undo log 事务回滚日志2.3 redo log 快速恢复日志 三、补充说明3.1 补充&#xff1a;为什么使用 buffer pool 而不直接修改磁盘中的数据&#xff1f;3.2 补充&#xff1a;同为操作数据变更的日志…

时间序列预测建模的完整流程以及数据分析【学习记录】

文章目录 1.时间序列建模的完整流程2. 模型选取的和数据集2.1.ARIMA模型2.2.数据集介绍 3.时间序列建模3.1.数据获取3.2.处理数据中的异常值3.2.1.Nan值3.2.2.异常值的检测和处理&#xff08;Z-Score方法&#xff09; 3.3.离散度3.4.Z-Score3.4.1.概述3.4.2.公式3.4.3.Z-Score与…

FFmpeg3.4 libavcodec协议框架增加新的decode协议

查看ffmepg下面的configure文件发现&#xff0c;config.h文件;解码协议的配置是通过libavcodec/allcodecs.c文件,通过查找DEC关键字生成的。 1、在libavcodec/allcodecs.c 新增REGISTER_ENCODER(MYCODE, mycode); REGISTER_ENCODER(VP8_VAAPI, vp8_vaapi); …

无人机数据处理与特征提取技术分析!

一、运行逻辑 1. 数据采集与预处理 多传感器融合&#xff1a;集成摄像头、LiDAR、IMU、GPS等传感器&#xff0c;通过硬件时间戳或PPS信号实现数据同步&#xff0c;确保时空一致性。 边缘预处理&#xff1a;在无人机端进行数据压缩&#xff08;如JPEG、H.265&#xff09;…

前端面试宝典---js垃圾回收机制

什么是垃圾回收 垃圾回收是指一种自动内存管理机制&#xff0c;当声明一个变量时&#xff0c;会在内存中开辟一块内存空间用于存放这个变量。当这个变量被使用过后&#xff0c;可能再也不需要它了&#xff0c;此时垃圾回收器会自动检测并回收这些不再使用的内存空间。垃圾回收…

IDEA 新建 SpringBoot 项目时,没有高版本 SpringBoot 可选

环境描述 IDEA 2025.1.1JDK17Maven 3.9.9 问题描述 IDEA 新建 SpringBoot 项目时&#xff0c;没有高版本 SpringBoot 可选&#xff0c;可以看到此时的最高版本为 3.0.2&#xff1a; 问题分析 返回上一步&#xff0c;可以发现 Spring Initializr 的服务地址为阿里云&#…

2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2)

2025年PMP 学习十三 第9章 项目资源管理&#xff08;9.1,9.2&#xff09; 序号过程过程组9.1规划资源管理规划9.2估算活动资源规划9.3获取资源执行9.4建设团队执行9.5管理团队执行9.6控制资源监控 文章目录 2025年PMP 学习十三 第9章 项目资源管理&#xff08;9.1,9.2&#xf…

动态规划问题 -- 多状态模型(删除并获得点数)

目录 动态规划分析问题五步曲题目概述预处理阶段 代码编写 动态规划分析问题五步曲 不清楚动态规划分析问题是哪关键的五步的少年们可以移步到 链接: 动态规划算法基础 这篇文章非常详细的介绍了动态规划算法是如何分析和解决问题的 题目概述 链接: 删除并获得点数 预处理阶段…

Jenkins里构建一个简单流水线

前情提要&#xff1a;传送门&#xff0c;我在虚拟机里装了一个Ubuntu&#xff0c;然后在docker里装了一个Jenkins及GitLab&#xff01; 点击这里下载或fork一个简单的Java项目用于学习Jenkins! 目标&#xff1a;修改代码后&#xff0c;上传到git&#xff0c;在在Jenkins流水线里…

Java Queue 接口实现

Date: 2025.05.14 20:46:38 author: lijianzhan Java中的Queue接口是位于java.util包中&#xff0c;它是一个用于表示队列的接口。队列是一种先进先出&#xff08;First-In-First-Out, 简称为FIFO&#xff09;的数据结构&#xff0c;其中元素被添加到队列的尾部&#xff0c;并从…

OpenEvidence AI临床决策支持工具平台研究报告

平台概述 OpenEvidence是一个专为医疗专业人士设计的临床决策支持工具,旨在通过整合各类临床计算器和先进的人工智能技术,提高医生的诊疗决策效率和准确性。作为一款综合性医疗平台,OpenEvidence将复杂的医学计算流程简化,同时提供个性化的临床建议,使医生能够更快、更准…