Docker学习笔记 - 常用命令
目录
- 基本概念
- 常用命令
- 使用docker compose启动脚本
- 创建自己的image
Docker命令文档
1. 下载一个image
从hub.docker.com下载一个image。
docker pull [image name]
下载时指定image的tag。
docker pull [image name]:<tag>
举例,下载postgre的tag为alpine3.19的image
docker pull postgre:alpine3.19
2. 载入一个Image
启动一个新的container并载入指定的image。
docker run -d [image name]
2.1 映射端口
启动redis镜像,把实际服务器上的port 6000绑定到docker container 的 6379 port。
docker run -p 5432:5432-d postgre
2.2 指定redis的镜像tag
下面命令指定运行tag为alpine3.19,tag可以简单的理解为类似版本号的东西。
docker run -p 5432:5432 -d postgre:alpine3.19
2.3 指定volume来达到数据的持续性
即container被停止时,里面被修改过的数据不会丢失。
docker run -p 6000:6379 -d postgre:alpine3.19 \
-v postgre_data:/var/lib/postgresql/data
指定volume的三种方式:
- Host Volume :指定在host上的存储位置和在image里的目录的对应关系,称为主机卷
-v [path in host]:[path in image] - Anonymous Volume :指定在image里需要被映射的目录,但不指定在host上的存储位置,使用docker的默认设置,称为匿名卷
-v [path in image] - Name Volume:指定在image里需要被映射的目录,使用docker的默认存储位置, 但给该存储的数据命名,称为命名卷,推荐使用。
-v [volume name]:[path in image]
2.4 使用环境变量
docker run -p 6000:6379 -d postgre:alpine3.19 \
-v postgre_data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=password
-e POSTGRES_USER=admin
使用-e来指定环境变量的值,每个环境变量都要用-e来标识。每个image的环境变量定义都不同,因此需要到hub.docker.com上查询该image的文档。
2.5 指定使用的虚拟网络名字
如下命令,将启动的image连接到虚拟网络postgre-network。
docker run -p 6000:6379 -d postgre:alpine3.19 \
-v postgre_data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=password
-e POSTGRES_USER=admin
--net postgre-network
2.6 指定container名字
docker run -p 6000:6379 -d postgre:alpine3.19 \
-v postgre_data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=password
-e POSTGRES_USER=admin
--net postgre-network
--name postgre_db
3. 重启一个container
重启一个docker container.
docker start [container name]
举例,启动名为my_container的容器。
docker start my_container
4. 暂停一个container
暂停一个docker container.
docker stop [container name]
举例,停止名为my_container的容器。
docker stop my_container
5. 列出现有container
以下命令效果都一样
docker ps
docker container ls
docker container ps
默认情况下,该命令只列出目前运行中的container,要列出停止的container,可以使用以下参数。
docker ps -a
如果要显示出container的大小,可以使用以下参数。
docker ps -s
6. 在运行中的Container中执行命令行
docker exec [container name]
举例,查看在叫mycontainer的容器中,工作目录下的文件
docker exec mycontainer ls
在叫mycontainer的容器中,在/tmp目录下生产一个名为execWorks的文件。
docker exec -d mycontainer touch /tmp/execWorks
7. 实时显示Container的资源使用情况
docker stats
这个命令默认只显示当前运行中的container的资源使用情况,要查看所有container的情况,可以使用以下参数
docker stats -a
8. 移除指定Container
docker rm [container name]
在移除container之前,首先要停止container的运行。如果要移除运行中的container,请使用以下参数。
docker rm -f mycontainer.
移除container同时,也要移除相关联的volumes,使用以下参数。
docker rm -v mycontainer
要释放所有的已停止的container,可以使用以下命令:
docker container prune
9. 查看现存的image, image的属性
docker images
执行这条命令后,系统就会列出所有现存的images,如下图。

由上图可见,每个image有repository, tag, image id三个属性。repository 属性在图形界面里又被称为name。
这里,要讲一下image的 image id和name/repository的区别。
image name/repository 是你在创建image是给他起的名字。不同的image是允许使用同样的image name的。比如,你可以重复生成叫做MyImage的image, 但是只有最后生成的那个才会获得latest的tag。你也可以通过给他们打上不同的tag以示区别。
image id 是你在创建image时系统自动为它生成的id,每个image id都是独一无二的,标识唯一的一个image。
9. 移除image
移除image时可以使用image id也可以使用image name。
docker image rm [image name] or [image id]
docker rmi [image name] or [image id]
举例,移除名字叫myimage的最新生成的image。
docker rmi myimage:latest
要注意的是,一个image可以被tag两个不同的name,着这种情况下,需要解除image和name和tag的绑定,才可以移除image。
举例,Image ID为5164fcc90073的image同时被tag了两个不同的名字,image1:latest和image2:latest, 当我们执行以下命令,仅解除了这个image和image1:latest.
docker rmi image1:latest
此时,这个image仅于image2:latest绑定,执行以下命令,会解绑该image和image2:latest并删除这个image。
docker rmi image2:latest
持续更新中
相关文章:
Docker学习笔记 - 常用命令
目录 基本概念常用命令使用docker compose启动脚本创建自己的image Docker命令文档 1. 下载一个image 从hub.docker.com下载一个image。 docker pull [image name]下载时指定image的tag。 docker pull [image name]:<tag>举例,下载postgre的tag为alpine…...
数学建模(Topsis python代码 案例)
目录 介绍: 模板: 案例: 极小型指标转化为极大型(正向化): 中间型指标转为极大型(正向化): 区间型指标转为极大型(正向化): 标准化处理: 公式: Topsis(优劣解距离法): 公式: 完整代码: 结果: 介绍: 在数学建模中,Topsis方法是一种多准则决策分…...
gateway网关指定路由响应超时时间
gateway网关指定路由响应超时时间 spring:cloud:gateway:httpclient:responseTimeout: 10000这个配置用于设置HttpClient的响应超时时间,单位是毫秒。具体来说,这个配置表示当Gateway向后端服务发出请求后,如果在10秒内没有收到后端服务的响…...
docker 和K8S知识分享
docker知识: 比如写了个项目,并且在本地调试没有任务问题,这时候你想在另外一台电脑或者服务器运行,那么你需要在另外一台电脑或者服务器配置相同的软件,比如数据库,web服务器,必要的插件和库等…...
MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?
MySQL select count(*)、count(1)、count(列名) 的区别? 这里我们先给出正确结论: count(*),包含了所有的列,会计算所有的行数,在统计结果时候,不会忽略列值为空的情况。count(1),忽略所有的列…...
使用verilog设计实现16位CPU及仿真
这是一个简单的16位CPU(中央处理单元)的设计实验。这个CPU包括指令存储器、数据存储器、ALU(算术逻辑单元)、寄存器文件和控制单元。 设计一个简单的16位CPU的实验通常可以分为以下几个步骤: 指令集设计:首先确定CPU支持的指令集架构,包括指令格式、寄存器组织、地址模…...
Python将字符串转换为datetime
有这样一些字符串: 1710903685 20240320110125 2024-03-20 11:01:25 要转换成Python的datetime 代码如下: import functools import re from datetime import datetime, timedelta from typing import Union# pip install python-dateutil from date…...
Vue 3 + TypeScript + Vite的现代前端项目框架
随着前端开发技术的飞速发展,Vue 3、TypeScript 和 Vite 构成了现代前端开发的强大组合。这篇博客将指导你如何从零开始搭建一个使用Vue 3、TypeScript以及Vite的前端项目,帮助你快速启动一个性能卓越且类型安全的现代化Web应用。 Vue 3 是一款渐进式Jav…...
浏览器强缓存和弱缓存的主要区别
浏览器强缓存与弱缓存 浏览器的缓存机制主要分为两种:强缓存与协商缓存(也称弱缓存)。 强缓存 强缓存是指浏览器在请求一个资源时,不与服务器发生通信,直接从本地缓存中获取资源。如果存在有效的强缓存,…...
深度学习-2.9梯度不稳定和Glorot条件
梯度不稳定和Glorot条件 一、梯度消失和梯度爆炸 对于神经网络这个复杂系统来说,在模型训练过程中,一个最基础、同时也最常见的问题,就是梯度消失和梯度爆炸。 我们知道,神经网络在进行反向传播的过程中,各参数层的梯…...
地宫取宝dfs
分析: 矩阵里的每一个位置都有标记,要求的问题是:有几种方法能完成这个规定。 那么,我们只需要计算从开始(1,1)到最后(n,m)的深度优先搜索中,有几个是满足要求的即为正确答案。 有个要求是,如果一个格子中…...
Ollama 运行 Cohere 的 command-r 模型
Ollama 运行 Cohere 的 command-r 模型 0. 引言1. 安装 MSYS22. 安装 Golang3. Build Ollama4. 运行 command-r 0. 引言 Command-R Command-R 是一种大型语言模型,针对对话交互和长上下文任务进行了优化。它针对的是“可扩展”类别的模型,这些模型在高…...
2024年C语言最新经典面试题汇总(11-20)
C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程…...
arm linux应用程序crash分析一般方法
目录: 前言一、定位问题的基本方法论1.1 生产环境下系统崩溃的日志信息示例 二、 分析这类什么都没有的app crash的一般方法论:附录:附录1 pmap -p 进程PID 查看进程的内存分配情况附录2 cat /proc/pid/maps 总结 前言 linux的应用程序app开…...
Web安全防护技术解决方案
1、防止爆破 限制请求ip访问次数,超过设定访问次数后,拒绝访问或锁定N分钟后可再次请求 2、调用短信验证码时 加入验证码采用防爆破策略 3、上传后的文件防止被猜出爬取 保存在物理磁盘可进行加密防护文件不能存储在站点目录,防止通过ur…...
流畅的 Python 第二版(GPT 重译)(十一)
第二十章:并发执行器 抨击线程的人通常是系统程序员,他们心中有着典型应用程序员终其一生都不会遇到的用例。[…] 在 99%的用例中,应用程序员可能会遇到的情况是,生成一堆独立线程并将结果收集到队列中的简单模式就是他们需要了解…...
Blender 3D建模要点
3d模型可以为场景的仿真模拟带来真实感,它还有助于更轻松地识别场景中的所有内容。 例如,如果场景中的所有对象都是简单的形状,如立方体和圆形,则很难在仿真中区分对象。 1、碰撞形状与视觉形状 像立方体和球体这样的简单形状&a…...
网络安全实训Day8
写在前面 网络工程终于讲完了。这星期到了网络安全技术部分。 网络安全实训-网络安全技术 网络安全概述 信息安全:所有保障计算机硬件、系统、软件、数据不因有意或无意的行为导致的服务中断、数据损坏或丢失等安全事件的保障技术 网络安全:基于计算机…...
GB28181 —— 5、C++编写GB28181设备端,完成将USB摄像头视频实时转发至GB28181服务并可播放(附源码)
被测试的USB摄像头 效果 源码说明 主要功能模拟设备端,完成注册、注销、心跳等,同时当服务端下发指令播放视频时 设备端实时读取USB摄像头视频并通过OpenCV处理后实时转ps格式后封包rtp进行推送给服务端播放。 源码 /****@remark: pes头的封装,里面的具体数据的填写已经占…...
Git工具的详细使用
一、环境说明 [rootgit ~]# getenforce Disabled [rootgit ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (d…...
专业级PDF自动化解决方案:如何构建高效文档工作流
专业级PDF自动化解决方案:如何构建高效文档工作流 【免费下载链接】clawPDF Open Source Virtual (Network) Printer for Windows that allows you to create PDFs, OCR text, and print images, with advanced features usually available only in enterprise solu…...
Python+百度OCR实战:5分钟搞定批量图片经纬度提取(附完整代码)
Python百度OCR实战:5分钟搞定批量图片经纬度提取(附完整代码) 当你面对数百张带有经纬度水印的野外考察照片时,是否曾为手动记录坐标而抓狂?去年参与某生态调查项目时,团队摄影师每天传回300张带坐标水印的…...
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置 1. 引言 想象一下,你开发了一个超酷的复古像素风语音设计工具,用户只需要输入文字和语气描述,就能生成各种情绪饱满的AI配音。这个工具在本地测试时运行完美&a…...
Steam Achievement Manager终极指南:如何完全掌控你的Steam成就与统计数据
Steam Achievement Manager终极指南:如何完全掌控你的Steam成就与统计数据 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager Steam Achievement …...
基于R语言的自动数据收集:网络抓取和文本挖掘实用指南【1.4】
2.3.11 表格标签<table>、<tr>、<td>和<th>下一组元素让HTML能够显示表格。查看一下表2-2,并把它和如下所示的HTML对应表示进行比较。我们用<table>标签来产生一个表格。我们用<tr>产生一个新行。在<tr>内部,…...
黑客马拉松利器:OpenClaw+SecGPT-14B快速构建安全PoC
黑客马拉松利器:OpenClawSecGPT-14B快速构建安全PoC 1. 缘起:当安全专家遇上自动化助手 去年参加某次网络安全竞赛时,我遇到了一个典型痛点:在48小时的黑客马拉松中,团队需要快速验证多个漏洞猜想,但手动…...
Flutter 响应式设计:适配各种设备尺寸
Flutter 响应式设计:适配各种设备尺寸让你的应用在手机、平板和桌面端都能完美呈现。一、响应式设计的重要性 作为一名追求像素级还原的 UI 匠人,我深知响应式设计的重要性。在当今多设备时代,用户可能在各种尺寸的屏幕上使用你的应用——从 …...
MTKClient实战指南:从环境搭建到故障排查的完整路径
MTKClient实战指南:从环境搭建到故障排查的完整路径 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient作为一款专注于联发科芯片组设备的开源工具配置方案,提…...
G-Helper完整指南:华硕笔记本的终极轻量级控制工具
G-Helper完整指南:华硕笔记本的终极轻量级控制工具 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar,…...
RWKV7-1.5B-G1A快速部署:基于Docker和VS Code的远程开发环境搭建
RWKV7-1.5B-G1A快速部署:基于Docker和VS Code的远程开发环境搭建 1. 引言 如果你正在寻找一种高效的方式来搭建RWKV7-1.5B-G1A模型的开发环境,这篇教程正是为你准备的。我们将使用Docker和VS Code的远程开发功能,在星图GPU平台上快速搭建一…...
