Docker 常用命令以及镜像选择

前言-与正文无关

生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步,感受周围的世界。让我们一起提醒自己,要适时放慢脚步,欣赏生活中的每一道风景,享受与家人朋友的温馨时光,发现那些平凡日子里隐藏的幸福时刻。因为,这些点点滴滴汇聚起来的,才是构成我们丰富多彩生活的本质。希望每个人都能在繁忙的生活中找到自己的快乐之源,不仅仅为了生存而工作,更为了更好的生活而生活.

送你张美图!希望你开心!

1.Docker基本组成

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);

docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似 maven)

docker镜像(Images):软件打包好的镜像;放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

2.镜像选择

比如我想下个mysql,但是docker hub仓库中有太多镜像了,我如何选择我想要的那个镜像呢

2.1、镜像推荐选择方案

搜索官方镜像:在 Docker Hub 上搜索 mysql。官方镜像通常会带有“官方”标签。

 找下面两种标识的也是可以的,一个是发行商是经过验证的,一个是oss验证

  • 下载次数和评分:查看镜像的下载次数和评分,选择下载量多、评分高的镜像。
  • 维护情况:阅读镜像页面的详细信息和使用说明。官方镜像页面通常会提供如何配置、启动和管理容器的详细信息。检查镜像的维护情况,查看最近的更新记录和问题反馈。选择维护频繁、问题反馈及时的镜像。

3.Docker 命令

        

3.1镜像管理

  • 拉取镜像:

        拉取远程仓库中的镜像到本地。

docker pull <image_name>
  • 列出镜像:

        列出本地所有镜像。

docker images

REPOSITORY 名称,一般和TAG组合使用形成唯一

TAG 版本号

IMAGE ID 镜像唯一id

CREATED是镜像作者发布到docker外网的时间,不是拉取到本地的时间

SIZE 镜像大小

  • 删除镜像:

        删除本地的某个镜像。

docker rmi <image_name>

例如:docker rmi  tomcat:9.0.20-jre8-alpine

除了按照名称也可以按照image ID进行删除,建议还是上面的名称删除,因为tagID在终端长度未完全显示,ID值会出现重复

  • 构建镜像:

使用当前目录的 Dockerfile 构建镜像。

docker build -t <image_name> .

3.2容器管理

  •  运行容器 

         使用指定镜像启动容器,-d 表示后台运行,-p 用于端口映射。 --name设置容器名或镜像名

docker run -d -p 80:80 --name <container_name> <image_name> ....

常用参数 :

-d, --detach=false: 后台运行容器,并返回容器ID ,加d就不能使用--rm了

-i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用

-P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口。不推荐各位小伙伴 使用该参数

-p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐各位小伙伴们使用

-t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

--name="nginx-lb": 为容器指定一个名称

-h , --hostname="laosiji": 指定容器的hostname

-e , --env=[]: 设置环境变量,容器中可以使用该环境变量

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型

--link=[]: 添加链接到另一个容器;不推荐各位小伙伴使用该参数

-v, --volume : 绑定一个卷

--privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities

--restart=no:指定容器停止后的重启策略

no:容器退出时不重启

on-failure:容器故障退出(返回值非零)时重启

always:容器退出时总是重启,推荐各位小伙伴们使用

--rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器

  • 列出运行中的容器和所有容器

        列出当前正在运行的容器。

docker ps

        列出所有容器(包括已停止的)。

docker ps -a

参数详解输出详情介绍:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

状态有7种:

created(已创建)

restarting(重启中)

running(运行中)

removing(迁移中)

paused(暂停)

exited(停止)

dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

NAMES: 自动分配的容器名称。

  • 停止容器

大部分命令如果可以使用容器的id(container_id),其实也可以使用容器名

        停止指定容器。

docker stop <container_id>

  • 启动重启容器

        启动已停止的容器。

docker start <container_id>

       重启容器

       

  docker restart  <container_id>
  • 删除容器
    删除指定容器。
    
    docker rm <container_id>

    例如:

        先以此命令运行一个容器 docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine

        需要先停止运行中的容器再删除,否则无法删除容器

        docker stop tomcat9

        按照容器名称删除

        docker rm tomcat9

        按照容器ID删除

        docker rm 8dd95a95e687

rm可以关联参数

        -f :通过 SIGKILL 信号强制删除一个运行中的容器。

        -l :移除容器间的网络连接,而非容器本身。

        -v :删除与容器关联的卷。

  • 查看容器日志

        查看容器输出的日志。

docker logs <container_id>

例如:docker logs -f tomcat9

        -f : 跟踪日志输出

        --tail :仅列出最新N条容器日志

  • 进入容器

        进入正在运行的容器,/bin/bash 是要执行的命令,通常用于进入容器的交互式终端。

docker exec -it <container_id> /bin/bash

        /bin/bash 是有bash命令的linux系统:例如centos

        docker exec -it tomcat9.1 /bin/bash

        没有bash命令的linux系统:如下命令,例如alpine系统

        docker exec -it tomcat9.2 sh

                -i :即使没有附加也保持STDIN 打开

                -t :分配一个伪终端

exit退出容器

3.3网络管理

  • 列出网络

    列出所有 Docker 网络。

docker network ls
  • 创建网络

        创建新的 Docker 网络。

docker network create <network_name>

  • 连接容器到网络

        将容器连接到指定网络。

docker network connect <network_name> <container_name>

  • 断开容器与网络的连接

        将容器从指定网络断开。

docker network disconnect <network_name> <container_name>

3.4卷管理

  • 列出卷

    列出所有卷。

    docker volume ls

  • 创建卷

    创建新的卷。

    docker volume create <volume_name>

  • 查看卷详细信息

    查看卷的详细信息。

    docker volume inspect <volume_name>

  • 删除卷

    删除指定卷。

    ​​​​​​​docker volume rm <volume_name>

3.5镜像和容器清理

  • 清理未使用的镜像、容器、卷和网络

    我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像、容器、卷和网络,可以通过以下命令进行清理。执行完命令后,还是告诉我们释放了多少存储空间!​​​​​​​

​​​​​​​docker system prune

3.6其他常用命令

  • 查看 Docker 系统信息和容器详细信息

    查看 Docker 的系统级别信息。

    ​​​​​​​docker info
    inspect详细信息

        寻找容器在服务器存储位置

        docker ps -a找到容器id/容器名称

        docker inspect 容器id/容器名称 | grep UpperDir找出该容器在物理机的位置

        cd到UpperDir所指向的地址,找到配置文件并修改,到这后,这个位置和你用exec命令进入容器内看到文件是一致的

  • 显示 Docker 版本

    显示 Docker 客户端和服务端的版本信息。

    docker version

  • 导出容器

    将容器导出为一个 tar 文件。

    docker export <container_id> -o <filename>.tar

  • 导入镜像

    从 tar 文件中导入镜像。

    docker import <filename>.tar

  • 镜像 save压缩load 解压

    推荐-o方式,语法是save后是上图镜像信息的REPOSITORY冒号加TAG组合而成的,最后写成要打包的名字

    docker save tomcat:9.0.20-jre8-alpine -o tomcat9.tar

    docker save tomcat:9.0.20-jre8-slim > tomcat9.slim.tar

    批量打包

load:解压至本地镜像

将上面save保存的包解压并放到本地仓库,通过docker images 重新获取信息

docker load -i linux.tar

docker load < tomcat9.0.20.tar

------------------------------------------与正文内容无关------------------------------------
 如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!

混口饭吃了!如果你需要Java 、Python毕设、商务合作、技术交流、就业指导、技术支持度过试用期。请在关注私信我,本人看到一定马上回复!

这是我全部文章所在目录,看看是否有你需要的,如果遇到觉得不对地方请留言,看到后我会查阅进行改正。

A乐神-CSDN博客

关注在文章左上角,作者信息处。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PS系统教程12

画笔模式-绘画模式 相反组&#xff1a;理解一组即可 叠加、柔光重点理解&#xff0c;后面只是细微的差别差值-排除相当于胶卷留下的底片那样的效果。 正常和溶解的对比 正常-背后 效果&#xff1a;重叠的部分在就图层后面。 清楚与橡皮擦一样。 变暗 原理&#xff1a;比这个…

数学建模笔记

数学建模 定义角度 数学模型是针对参照某种事物系统的特征或数量依存关系&#xff0c;采用数学语言&#xff0c;概括地或近似地表述出的一种数学结构&#xff0c;这种数学结构是借助于数学符号刻画出来的某种系统的纯关系结构。从广义理解&#xff0c;数学模型包括数学中的各…

Linux系统之mv命令的基本使用

Linux系统之mv命令的基本使用 一、mv命令介绍1. mv命令简介2. mv命令的使用结果 二、mv命令的使用帮助1. 在命令行的帮助信息2. mv常用选项 三、mv命令的基本使用1. 创建源目录和目标目录2. 新建测试文件3. 将源目录文件复制到目标目录4. 将文件进行改名5. 将目录的所有文件转移…

Windows下使用Airsim+QGC进行PX4硬件在环HITL(三)

Windows下使用AirsimQGC进行PX4硬件在环HITL This tutorial will guide you through the installation of Airsim and QGC on Windows, so that the hardware-in-the-loop experiment can be conducted. Hardware-in-the-Loop (HITL or HIL) is a simulation mode in which nor…

功效系数法

功效系数法&#xff08;Efficacy Coefficient Method&#xff09;是一种综合评价方法&#xff0c;它根据多目标规划的原理&#xff0c;对每个评价指标确定一个满意值和不允许值&#xff0c;以满意值为上限&#xff0c;以不允许值为下限。计算各指标实现满意值的程度&#xff0c…

以太网扫盲(四)phy驱动link up流程分析

1. 简介 在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂&#xff0c;不仔细研究的话还不好搞懂&#xff0c;另外百度到的资料也不够全面&#xff0c;这篇就总结梳理一下这方面的知识。 我们知道一个 phy 驱动的原理是非常简单的&#xff0c;一般流程如下&#x…

AI视频教程下载:给初学者的ChatGPT提示词技巧

你是否厌倦了花费数小时在可以通过强大的语言模型自动化的琐碎任务上&#xff1f;你是否准备好利用 ChatGPT——世界上最先进的语言模型——并将你的生产力提升到下一个水平&#xff1f; ChatGPT 是语言处理领域的游戏规则改变者&#xff0c;它能够理解并响应自然语言&#xf…

[笔记] 记录docker-compose使用和Harbor的部署过程

容器技术 第三章 记录docker-compose使用和Harbor的部署过程 容器技术记录docker-compose使用和Harbor的部署过程Harborhttps方式部署&#xff1a;测试环境部署使用自签名SSL证书https方式部署&#xff1a;正式环境部署使用企业颁发的SSL证书给Docker守护进程添加Harbor的SSL证…

C++面向对象-继承,多态,重载

目录 零. 简介 一. 继承 1.基类,派生类 2.访问控制和继承: 3.多继承 二. 多态 关键字 virtual override : 用例:工厂模式 三. 重载 函数重载: 操作符重载: 零. 简介 继承&#xff1a;允许一个类从另一个类获取属性和方法。子类可以继承父类的特性&#xff0c;并可以…

python11 序列的相关操作

枚举遍历 序列的相关操作 text "hello,python" # in 判断字符是否在序列中&#xff0c;存在返回true,否则返回false print(p是否存在:,(p in text)) print(a是否存在:,(a in text)) # not in 判断字符不在序列中&#xff0c;不存在返回true,否则返回false print(p不…

代码随想录——二叉搜索树的最近公共祖先(Leetcode235)

题目链接 普通递归法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode…

python猴子补丁Monkey Patching

猴子补丁&#xff08;Monkey Patching&#xff09;是一种动态修改或扩展代码行为的技术。具体来说&#xff0c;它是在运行时改变或扩展模块、类或函数的行为&#xff0c;而不需要修改源代码本身。这在某些情况下非常有用&#xff0c;比如&#xff1a; 修复第三方库中的bug&…

MySQL中所有常见知识点汇总

存储引擎 这一张是关于整个存储引擎的汇总知识了。 MySQL体系结构 这里是MySQL的体系结构图&#xff1a; 一般将MySQL分为server层和存储引擎两个部分。 其实MySQL体系结构主要分为下面这几个部分&#xff1a; 连接器&#xff1a;负责跟客户端建立连 接、获取权限、维持和管理…

C++高级 - 接口模板

目录 一. 接口 二. 模板 一. 接口 接口通常是通过抽象类或纯虚函数来实现的。 以下是一个使用抽象类来定义接口的示例代码&#xff1a; #include <iostream>class Interface { public:virtual void operation() 0; // 纯虚函数定义接口 };class ConcreteClass : pu…

Windows CMD对MySQL进行基本操作的常用命令

目录 前言1. 数据库操作2. 表操作3. 记录操作4. 备份与恢复数据库 前言 对于基本的命令行以及优化推荐阅读&#xff1a; 数据库中增删改常用语法语句&#xff08;全&#xff09;Mysql优化高级篇&#xff08;全&#xff09;命令行登录Mysql的详细讲解 启动MySQL服务&#xff1…

渐开线花键学习之齿厚(实际作用怎么分?)

国标GB/T 3478.1-2008中对渐开线花键的齿厚相关的描述如下&#xff1a; 【基本齿槽宽】E&#xff08;basic space width&#xff09;内花键分度圆上弧齿槽宽的基本尺寸&#xff0c;其值为齿距的一半。 【实际齿槽宽】&#xff08;actual space width&#xff09;在内花键分度…

机器学习算法 —— 逻辑回归

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 目录 逻辑回归逻辑回归的介绍逻辑回归的优点逻辑回归的缺点逻辑回归的应用 实践演示库函数导入模型训练模型参数查看数据和模型可视化模型预测 …

CCIG 2024:大模型技术及其前沿应用论坛深度解析

一、CCIG论坛介绍 中国图象图形大会&#xff08;CCIG 2024&#xff09;是一场备受瞩目的学术盛会&#xff0c;近期在陕西省西安市曲江国际会议中心举行。这次会议以“图聚智生&#xff0c;象合慧成”为主题&#xff0c;由中国图象图形学学会主办&#xff0c;旨在汇聚图像图形领…

12 - 常用类

那就别跟他们比&#xff0c;先跟自己比&#xff0c;争取今天比昨天强一些&#xff0c;明天比今天强一些。 1.包装类 针对八种基本数据类型封装的相应的引用类型。 有了类的特点&#xff0c;就可以调用类中的方法。&#xff08;为什么要封装&#xff09; 基本数据类型包装类b…