Docker学习笔记 - 常用命令

news2024/11/19 16:48:35

目录

  1. 基本概念
  2. 常用命令
  3. 使用docker compose启动脚本
  4. 创建自己的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

持续更新中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540050.html

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

相关文章

JetBrains产品激活码激活(IntelliJ IDEA,PyCharm,PhpStorm,WebStorm,CLion,GoLand等)

&#xff08;以 IntelliJ IDEA为例&#xff09; 1.进入激活网址 https://jetbra.in/s 2.选择一个没有安全警告提示的网址进入 3.下载激活文件并解压&#xff08;建议放在与IntelliJ IDEA同级目录下&#xff09; 4.进入IDEA/bin下修改配置文件 &#xff0c;添加下述三行&…

分享:vue3+OpenTiny UI+cesium 实现三维地球

效果图 使用vue3 OpenTiny UI cesium 实现三维地球 node.js > v16.0 opentiny vue3 ui安装指南 https://opentiny.design/tiny-vue/zh-CN/os-theme/docs/installation yarn add opentiny/vue3 项目依赖 "dependencies": {"opentiny/vue": "3…

【LabVIEW FPGA入门】FPGA寄存器(Register)

当您需要从多个时钟域或设计的不同部分访问数据&#xff0c;并且需要编写可重复使用的代码时&#xff0c;可使用寄存器项来存储数据。与 FIFO 相比&#xff0c;寄存器项消耗的 FPGA 逻辑资源更少&#xff0c;而且不消耗块存储器&#xff0c;而块存储器是最有限的 FPGA 资源类型…

AbstractQueuedSynchronizer 独占式源码阅读

概述 ● 一个int成员变量 state 表示同步状态 ● 通过内置的FIFO队列来完成资源获取线程的排队工作 属性 AbstractQueuedSynchronizer属性 /*** 同步队列的头节点 */private transient volatile Node head;/*** 同步队列尾节点&#xff0c;enq 加入*/private transient …

水果销售管理网站|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;…

深度学习(二)安装tensorflow深度学习框架

0.前言 速度更新新的一期&#xff0c;快夸奖我。前情提要这是我在window10系统下完成的操作&#xff0c;并不是ubuntu&#xff0c;所以有相应的区别。 1.安装tensorflow和d2l 这里默认大家已经安装好了anconda或者miniconda并且以及创建了虚拟环境。 conda create -n huahuaji…

JavaScript 权威指南第七版(GPT 重译)(六)

第十五章&#xff1a;JavaScript 在 Web 浏览器中 JavaScript 语言是在 1994 年创建的&#xff0c;旨在使 Web 浏览器显示的文档具有动态行为。自那时以来&#xff0c;该语言已经发生了显著的演变&#xff0c;与此同时&#xff0c;Web 平台的范围和功能也迅速增长。今天&#…

浮点数在计算机中的存储

1. 引言 我们知道&#xff0c;整数在计算机中是以二进制补码的形式存储的&#xff0c;那么浮点数呢&#xff1f; 考虑到这个问题&#xff0c;你会感到十分苦恼&#xff0c;因为你并不知道要如何将一个浮点数转化成一段二进制序列。 那我们不妨先来验证一下&#xff0c;整数与…

【Node.js】npx

概述 npx 可以使用户在不安装全局包的情况下&#xff0c;运行已安装在本地项目中的包或者远程仓库中的包。 高版本npm会自带npx命令。 它可以直接运行 node_modules/.bin 下的 exe 可执行文件。而不像之前&#xff0c;我们需要在 scripts 里面配置&#xff0c;然后 npm run …

相交链表:寻找链表的公共节点

目录 一、公共节点 二、题目 三、思路 四、代码 五、代码解析 1.计算长度 2.等长处理 3.判断 六、注意点 1.leetcode的尿性 2.仔细观察样例 3.经验总结 一、公共节点 链表不会像两直线相交一样&#xff0c;相交之后再分开。 由于单链表只有一个next指针&#xff0…

MySQL 8.0-索引- 不可见索引(invisible indexes)

概述 MySQL 8.0引入了不可见索引(invisible index)&#xff0c;这个在实际工作用还是用的到的&#xff0c;我觉得可以了解下。 在介绍不可见索引之前&#xff0c;我先来看下invisible index是个什么或者定义。 我们依然使用拆开来看&#xff0c;然后再把拆出来的词放到MySQL…

Redis高级数结构HyperLogLog

HyperLogLog 概述 概述。 HyperLogLog并不是一种新的数据结构(实际类型为字符串类型),而是一种基数算法&#xff0c;通过HyperLogLog可以利用极小的内存空间完成独立总数的统计&#xff0c;数据集可以是IP、Email、ID等 如果你负责开发维护一个大型的网站&#xff0c;有一天产…

使用 VMWare 安装 Android-x86 系统(小白版)

文章目录 VMWare 介绍Android 系统介绍概述最终效果前置步骤开始安装 VMWare 介绍 VMware Workstation是VMware公司开发的一款桌面虚拟化软件。它允许用户在一台物理计算机上同时运行多个操作系统&#xff0c;每个操作系统都在自己的虚拟机中运行。这使得用户可以在同一台计算…

如何使用swiprt插件

首先可以来到swiper网站看文档(中文) swiper网址地点 可以在这里面去下载swiper版本插件 需要注意的是从Swiper7开始&#xff0c;容器默认类名由’.swiper-container’变更为’.swiper’ 下载后呢 找到swiper-bundle.min.js和swiper-bundle.min.css文件 并放在你的项目中&…

Apollo配置中心

一、介绍 简要介绍 Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的权限、流程治理等特性&#xff0c;适用于微服务…

在Linux中同一个tomcat出现多个进程

第一步&#xff0c;查看服务器所有的启动进程。 命令&#xff1a;top -c 第二步&#xff0c;通过点击“shiftM”&#xff0c;按照内存大小排序&#xff1b;点击“shiftP”&#xff0c;按照CPU大小排序。 在[COMMAND]列找到相同的tomcat进程&#xff0c;可以得到对应的PID。 …

【JavaEE初阶系列】——单例模式 (“饿汉模式“和“懒汉模式“以及解决线程安全问题)

目录 &#x1f6a9;单例模式 &#x1f388;饿汉模式 &#x1f388;懒汉模式 ❗线程安全问题 &#x1f4dd;加锁 &#x1f4dd;执行效率提高 &#x1f4dd;指令重排序 &#x1f36d;总结 单例模式&#xff0c;非常经典的设计模式&#xff0c;也是一个重要的学科&#x…

iStoreOS R4S软路由结合内网穿透实现公网远程本地电脑桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是&#xff1a;** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能&#xff0c;也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

(2022级)成都工业学院软件构造实验二:面向对象软件构造

写在前面 1、基于2022级软件工程实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 任务&#xff1a;在第2章构造任务的基础上用面向对象构造技术&#xff0c…

错误centos docker版本过低导致 is not a valid repository/tag: invalid reference format

文章目录 错误centos docker版本过低导致 is not a valid repository/tag: invalid reference format1、查看免费主机刚才下载的docker版本2、卸载旧版本3、安装yum依赖包4、安装镜像信息5、安装docker CE6、查看docker版本7、再次运行就成功了&#xff01;&#xff01;&#x…