【Docker操作必看,原来这才是正确打开Docker的新方式】

2023-05-16

Docker操作必看,原来这才是正确打开Docker的新方式!

前言

一、Docker操作镜像

首先镜像名称一般分为两个部分:[repository]:[tag],前者是镜像名,后者是版本号。在没有指定tag的情况下,默认是latest,代表的是最新版本。 

在这里插入图片描述

1、拉取镜像

首先怎么获得镜像呢?你可以从本地构建一个镜像,使用docker build命令,下文我们会说到如何构建自己的镜像,我们先从镜像仓库中拉取镜像,使用docker pull命令进行拉取,如下图所示:

docker pull nginx
复制代码

首先我们得找到docker的镜像仓库,网址:hub.docker.com/ ,输入你要拉取的镜像名称,如下图所示,我们拉取一个Nginx进行安装。

在这里插入图片描述

检索到之后,我们选择一个我们需要的版本进行下载:

在这里插入图片描述

在这里插入图片描述

2、查看镜像

当我们拉取镜像成功之后(下载成功),怎么查看我们的镜像呢?使用docker images命令,如查看我们刚刚拉取的镜像,如下图所示:

docker images
复制代码

在这里插入图片描述

3、删除镜像

列表中列出了我们现有的镜像,比如此时我们不需要这个镜像了,如何删除呢?使用docker rmi命令,如下图所示:

docker rmi nginx
复制代码
docker rmi 镜像名称 / docker rm 镜像ID
复制代码

在这里插入图片描述

4、保存镜像

如果我们的镜像需要分享给别人,怎么操作呢?使用docker push命令,那么首先我们得有一个镜像文件是吧!其实就类似于把文件分享出去,我们需要处理成一个压缩包的形式,使用docker save命令即可打包成一个tar文件,那么当别人收到这个镜像的时候,如何解压呢?使用docker load命令即可解压,如下图操作所示:

镜像打包:

docker save -o nginx.tar nginx:latest
复制代码

在这里插入图片描述

在这之前,我们先删除镜像后,再做导入操作,以免重复。

在这里插入图片描述

5、读取镜像

镜像解压:

使用如下命令进行镜像tar包解压:

docker load -i nginx.tar
复制代码

在这里插入图片描述

5、镜像帮助命令

这么多命令记不住怎么办?使用docker help命令帮助我们查看每个命令的使用方式,如下图操作所示:

docker help
复制代码

在这里插入图片描述

继续使用docker 命令 --help 的命令查看具体命令的使用:

docker images --help
复制代码

在这里插入图片描述

二、Docker容器基础操作

1、创建并运行容器

docker run --name mynginx -p 80:80 -d nginx
复制代码

docker run : 创建并运行一个容器

--name:给容器起一个名字

-p:将宿主机端口与容器端口做一个映射,冒号左边是宿主机端口,右边是容器端口

-d:代表进程以后台方式运行

nginx:镜像全称,没有标签,代表最新版本

在这里插入图片描述

在这里插入图片描述

2、查看容器运行状态

docker ps -a
复制代码

3、查看容器启动日志

docker logs 容器名称
复制代码

在这里插入图片描述

如果想查看日志的实时信息,跟踪日志输出:

docker logs -f 容器名称
复制代码

在这里插入图片描述

4、停止容器

docker stop 容器ID
复制代码

在这里插入图片描述

当容器状态为Exited (0):表示退出,Up:表示在线

5、启动容器

docker start 容器ID
复制代码

在这里插入图片描述

6、暂停容器

docker pause 容器ID
复制代码

在这里插入图片描述

7、恢复容器

docker unpause 容器ID
复制代码

在这里插入图片描述

8、进入容器

进入容器,修改Nginx的HTML欢迎页。

docker exec -it mynginx bash
复制代码

在这里插入图片描述

exit  // 退出终端
复制代码

9、删除容器

docker rm 容器ID
复制代码

在这里插入图片描述

在删除容器之前,必须先停止容器,才能执行删除命令:

在这里插入图片描述

三、Docker容器数据卷操作

1.数据卷基础命令

数据卷是一个虚拟目录,指向宿主机文件系统中的某个文件目录

1.1 创建数据卷

docker volume create html
复制代码

在这里插入图片描述

1.2 查看数据卷

docker volume inspect
复制代码
docker volume ls
复制代码

在这里插入图片描述

1.3 删除数据卷

docker volume prune  // 删除未使用的数据卷
复制代码
docker volume rm html // 更具数据卷名称删除
复制代码

在这里插入图片描述

2.数据卷挂载

修改Nginx启动的默认欢迎页,我们使用数据卷挂载的方式来操作:

docker run --name mynginx -p 80:80 -v html:/usr/share/nginx/html -d nginx
复制代码

-v:将html这个数据卷挂载到/usr/share/nginx/html这个目录上,并且当html数据卷不存在的时候,容器会自动创建该数据卷

在这里插入图片描述

在这里插入图片描述

此时我们nginx启动成功了,我们去查看html数据卷是否创建成功了。

在这里插入图片描述

进入数据卷的硬盘存储地址,修改Nginx的html内容。 

在这里插入图片描述

在这里插入图片描述

我们修改一下Nginx的欢迎页面内容: 

在这里插入图片描述

修改保存成功之后,我们刷新一下web网页,发现动态刷新了,高级,爽啊!!!!!!!!!!!!。

在这里插入图片描述

四、Dockerfile自定义镜像

这里我们以部署一个jar文件为例子,简单说一下Dockerfile的使用方式,首先准备好一个普通SpringBoot的jar包,并且上传至Linux服务器。

在这里插入图片描述

1、编写Dockerfile文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: DT辰白
FROM java:8
MAINTAINER 1973984292@qq.com
LABEL description="描述jar包信息"
ADD dt.jar app.jar 
ENTRYPOINT ["java","-jar","app.jar"]
复制代码

命令解释:

FROM: 表示的是这个dockerfile构建镜像的基础镜像是什么,以哪个镜像作为基础进行制作,比如这里我们要运行java的一个jar包,JDK是整个Java的核心,是java运行的基础环境,所以首先必须有基础镜像java,这里 : 指代版本的意思,如果镜像名称中没有制定TAG,默认为latest。

MAINTAINER: 就是维护者信息了,通常是名字/邮箱格式。

LABEL: 用于为镜像添加元数据,就类似备注信息。

WORKDIR: 工作目录,类似于cd命令

ADD: 顾名思义,就是添加文件的功能了,将jar包添加到容器中并更名为app.jar。

RUN: 就是镜像操作命令,比如特殊的配置,安装等等,RUN命令默认使用/bin/sh,Shell执行,默认为root权限。如果命令过长需要换行,需要在行末尾加\。

ENTRYPOINT: 就是容器启动命令。

2、构建镜像

注意 . 表示 Dockerfile 文件在当前目录下

docker build -t boot-service .
复制代码

在这里插入图片描述

3、运行镜像

docker run -d -p 8080:9093 boot-service
-d 参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的9093(项目中端口配置的是9093)端口
复制代码

在这里插入图片描述

4、访问测试

浏览器输入web地址,访问测试,这里小编随便使用的本地的一个小demo,SpringBoot集成freemarker的简单使用。

在这里插入图片描述

跟踪实时日志:

在这里插入图片描述

总结

转载自:Docker操作必看,原来这才是正确打开Docker的新方式! - 掘金

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Docker操作必看,原来这才是正确打开Docker的新方式】 的相关文章

  • ubuntu20:/usr/bin/env: ‘python’: No such file or directory

    参考 xff1a https stackoverflow com questions 3655306 ubuntu usr bin env python no such file or directory 第一种可能 xff1a 如果没装p
  • 四轴无人飞行器 之 上位机

  • c/c++编程学习:空指针是什么?

    什么是空指针 xff1f 对于每一种指针类型 xff0c 都有一个特殊的值 空指针 xff0c 空指针与其他所有指针值区分开来 xff0c 保证其不会指向任何函数或者对象等有意义的数据 因此 xff0c 取地址运算符 amp 永远不会产生空
  • 基于ESP32的智能车WiFi图传模块实现

    基于 ESP32 C3 的多协议 WiFi 透传模块 xff08 可用作智能车图传 xff09 本项目为基于乐鑫公司的 ESP32 C3 芯片制作的无线透传模块 xff0c 具有多个通信协议接口 xff1a UART SPI 设计初衷是为了
  • 云服务器下载的镜像文件raw格式转vmdk

    使用软件qemu img https qemu weilnetz de w64 2021 下载之后安装 xff0c 然后进入安装的文件夹 xff0c 打开命令行工具然后执行下面命令 qemu img exe convert p f raw
  • keil5使用Arm Compiler 6编译出错

    Using Compiler 39 V6 15 39 folder 39 D Keil v5 ARM ARMCLANG Bin 39 main c 16 warning In file included from USER stm32f4x
  • 浏览器的相关知识

    今天在网上找到了一些需要大致了解的有关浏览器的相关知识分享 xff0c 原文链接在下方 1 浏览器的主要组成部分是什么 xff1f 用户界面 包括地址栏 前进 后退按钮 书签菜单等 除了浏览器主窗口显示的您请求的页面外 xff0c 其他显示
  • MySQL--用Navicat连接MySQL8.0报错1251问题解决

    文章目录 一 安装后直接用Navicat连接1251报错二 仍报错为 39 mysql 39 不是内部或外部命令 1 环境变量配置 三 找不到MySQL Server 8 0 bin路径四 解决上述全部问题 一 安装后直接用Navicat连
  • 10 分钟让你明白 MySQL 是如何利用索引的

    一 前言 在MySQL中进行SQL优化的时候 xff0c 经常会在一些情况下 xff0c 对 MySQL 能否利用索引有一些迷惑 譬如 MySQL 在遇到范围查询条件的时候就停止匹配了 xff0c 那么到底是哪些范围条件 xff1f MyS
  • 吊炸天的 Docker 图形化工具 —— Portainer

    一 Docker图形化工具二 DockerUI三 船坞四 搬运工1 查看portainer平均值2 选择喜欢的portainer风格整合 xff0c 下载3 启动dockerui容器4 xff0c 网页管理 一 Docker图形化工具 Do
  • 为提高面试通过率,技术岗可以提前做好哪些面试准备?

    Hi xff0c 大家好 xff0c 我是小庄 目前2023届秋招提前批已经陆续开始了 xff0c 考虑到一些校招的同学可能是第一次接触面试 xff08 该文章适用于校招 社招 xff09 xff0c 所以这篇文章就是为了记录一些面试技巧
  • GNU Radio自定义模块:Embedded Python Block的使用

    GNU Radio 学习使用 OOT 系列教程 xff1a GNU Radio3 8创建OOT的详细过程 基础 C 43 43 GNU Radio3 8创建OOT的详细过程 进阶 C 43 43 GNU Radio3 8创建OOT的详细过程
  • 中文分词

    本文首先介绍下中文分词的基本原理 xff0c 然后介绍下国内比较流行的中文分词工具 xff0c 如jieba SnowNLP THULAC NLPIR xff0c 上述分词工具都已经在github上开源 xff0c 后续也会附上github
  • (1)GNSS驱动nmea_navsat_driver 功能包的使用

    总览 该软件包为输出兼容NMEA语句的GPS设备提供了ROS接口 有关原始格式的详细信息 xff0c 请参见NMEA句子的GPSD文档 在成千上万的NMEA兼容GPS设备中 xff0c 我们正在汇编已知支持的设备列表 这个包是与兼容geog
  • (2)ROS传感器之GPS实践

    一 GPS接口类型 GPS接口大体可以分为两类 xff0c 一是单独的GPS接收器 xff0c 通常为USB接口 xff1b 二是与其他传感器集成 xff0c 例如激光雷达或者imu xff0c 大多是USB或者网络接口 xff0c 本文主
  • (6)GPS坐标与UTM坐标的转换

    1 简介 1 1 消息 gps common定义了两个通用消息 xff0c 供GPS驱动程序输出 xff1a gps common GPSFix和gps common GPSStatus 在大多数情况下 xff0c 这些消息应同时发布 xf
  • scanf("%c",&m)中%c前面加空格的作用

    c前面加空格不是必须的 xff0c 但有了空格就可以忽略你输入的空格 例如 xff1a scanf 34 c 34 amp m xff0c 你输入了 a a前面有个空格 xff0c a就能被c接受 但控制符前如果没空格 xff0c 那c就接
  • 聊一聊cropper.js

    最近的项目中有一个纯前端实现的功能困扰了我好久 xff0c 就是用户上传图片以后需要用户进入图片裁剪页并完成上传的功能 xff0c 一开始我是打算自己去用canvas去写这样一个页面的 xff0c 但是项目开发周期短 xff0c 任务紧 x
  • CAS服务(5.3)使用mysql验证

    CAS服务使用mysql验证 一 添加相关依赖 在pom文件里添加下面的依赖 这里cas的版本是5 3 14 lt dependency gt lt groupId gt org apereo cas lt groupId gt lt ar
  • Realsense L515 例程详解 Tutorial 1

    最近在用Realsense L515做一个机器人的视觉部分 看到网上相关资料较少 xff0c 和大家分享一下最近一周所学 第一个例程比较简单 xff0c 实现的功能也比较朴实 实现了什么功能呢 xff1f 就是把从相机得到的深度信息通过控制

随机推荐

  • #AI边缘计算单元-想搞开发,买树莓派还是Nano?

    作者 xff1a Blue Hole 个人网站 xff1a https www wcfde xyz xff0c 欢迎交流 近几年边缘计算快速发展 xff0c 已经渗透到各个行业 边缘计算单元也像雨后春笋涌现出来 xff0c 面对如此多的开发
  • 算法要怎么学习

    学习算法 xff0c 切记不要一上来就开始啃 算法导论 xff0c 毕竟这本书并不适合新手学习 xff0c 如果你之前的算法基础比较薄弱 xff0c 只会一直陷在 拿起来又放下 的循环里 可以怎么入门呢 xff1f 建议还是看书 43 实战
  • EGO-Swarm代码解读-地图部分

    文章目录 1 参数解读2 主要函数解读 1 参数解读 一 MappingData md 中的参数含义 xff1a local bound min span class token punctuation span local bound m
  • GNURadio中的PMTs(Polymorphic Types)数据类型

    目录 1 整体概述 2 使用方法的举例说明 3 对于PMT类型的补充说明 1 整体概述 PMTs在GNURadio中代表多态类型 xff08 Polymorphic Types xff09 xff0c 这种类型不像float int一样是严
  • STM32F103C8T6初学笔记

    STM32F103C8T6初学笔记 ST官网链接 xff1a http www stmicroelectronics com cn ST MCU网站链接 xff1a http www stmcu com cn 初识STM32 STM32是3
  • STM32F103 72MHz时钟设置

    将系统时钟初始化到72MHz的函数 根据数据手册和库函数 xff0c 设置STM32时钟为72MHz 这是 c文件 span class token macro property span class token directive key
  • C++ 类和对象学习 —— 继承

    1 6 继承 利用继承技术 xff0c 可以减少重复代码 1 6 1 继承的基本语法 普通实现 span class token macro property span class token directive keyword inclu
  • 解决 VS 无法打开包括文件: “XXX.h”: No such file or directory问题

    每次封装管理 xff0c 当 Visual Studio 包含多个 h 文件和 c 文件 xff0c 运行时总会发生如下错误 错误 C1083 无法打开包括文件 XXX h No such file or directory test1 0
  • C++ 多态深入学习总结笔记

    多态和虚函数 1 通过案例理解多态 案例 xff1a 父类Animal xff0c 2个子类Dog和Cat xff0c 实现speak方法 未使用虚函数 virtual 声明 main h 文件 span class token keywo
  • LaTeX 报错! Missing $ inserted. <inserted text>$ l.44 问题解决

    学习LaTeX编辑器编辑数学公式时 xff0c 输入如下 xff1a 编译报错如下 xff1a 搜索方法 xff0c 并未得到有效解决 xff0c 机缘巧合把空行删除 xff0c 如下图所示 xff1a 再次编译未报错 xff0c 成功运行
  • 在 Microsoft Word 插入代码块(无需下载任何软件)

    Step 1 打开 CSDN Markdown 编辑器 xff0c 点击菜单栏上方代码块 xff0c 选择自己的代码语言 Step 2 插入代码如下图所示 xff0c 之后将代码复制 Step 3 打开 Microsoft Word xff
  • MATLAB 利用YALMIP+Gurobi 求解线性规划 -多无人机扫描覆盖

    使用要点 创建决策变量设置目标函数添加约束条件参数配置求解问题 问题描述 假设M个无人机的任务是尽快覆盖一组由 P 顶点表示的多边形凸区域 xff0c 假设每架无人机的最大飞行时间是有限的 xff0c 并且是预先知道的 每架无人机的都配备了
  • 毕业论文格式系列1 Word 图片交叉引用其题注

    图表论文自动编号 自动编号可以通过 Word 的 题注 功能实现 按论文格式要求 xff0c 第一章的图编号格式为 图1 X xff0c 具体做法如下 xff1a 将图插入文档中后 xff0c 选中新插入的图 xff0c 在 引用 菜单选
  • Visual Studio 2022 编译新版 Mission Planner 地面站

    下载安装VS 2022 安装时 xff0c 注意勾选 安装成功后 xff0c 从Visual Studio官方SDKs下载net461开发包 xff0c 网址 xff1a https dotnet microsoft com en us d
  • GNU Radio中的流标签(Stream Tags)

    目录 0 GR 中常用术语的官方解释 1 定义概述 2 在数据流中添加标签 3 添加标签的demo举例 4 从数据流中的获取标签 5 提取标签的demo举例 0 GR 中常用术语的官方解释 直接吧官方的解释抄过来 xff0c 直接看英文更容
  • 飞控学习随记

    常见指令 编译Arduplane程序 span class token builtin class name cd span ardupilot waf plane 进入 Tools autotest 文件夹中 xff0c 启动3D fli
  • 【无标题】

    apm飞控飞行模式详解 1 稳定模式Stabilize 稳定模式是使用得最多的飞行模式 xff0c 也是最基本的飞行模式 xff0c 起飞和降落都应该使用此模式 此模式下 xff0c 飞控会让飞行器保持稳定 xff0c 是初学者进行一般飞行
  • C# CustomMessageBox.Show() 输出多个变量调试

    Mission Planner 地面站调试中会遇到输出多个变量问题 xff0c 这里采用CustomMessageBox Show来输出调试多个变量 xff0c 用到string Format方法 span class token clas
  • MapReduce实验——学生总成绩报表,学生平均成绩

    学生总成绩报表 Map类 span class token keyword package span span class token class name StudentScore 06 span span class token pun
  • 【Docker操作必看,原来这才是正确打开Docker的新方式】

    前言 一 Docker操作镜像 首先镜像名称一般分为两个部分 xff1a repository tag xff0c 前者是镜像名 xff0c 后者是版本号 在没有指定tag的情况下 xff0c 默认是latest 代表的是最新版本 1 拉取