Docker 入门 ------ 基本命令

news2024/12/29 7:56:24

1. 使用Docker镜像

1.1 获取镜像

主要命令:

docker pull NAME[:TAG]

NAME 为镜像名称,后跟:版本号,如果没有跟后面的版本号,默认拉取最新的稳定版本

例子:
在这里插入图片描述
上述命令相当于:docker.io/library/ubuntu:latest

1.2 查看镜像信息

使用images查看已有镜像

docker images

在这里插入图片描述
支持子命令如下:
在这里插入图片描述

使用tag命令添加镜像标签

docker tag [已有镜像] [新镜像名]

在这里插入图片描述

整体来说,docker tag命令添加的标签实际上起到了类似链接的作用.

使用inspect查看详细信息

docker inspect [镜像名]

在这里插入图片描述
可以使用-f来指定主要获取的属性。

docker inspect -f {{“.Architecture”}}

在这里插入图片描述

使用history查看历史镜像

docker history [镜像名]

在这里插入图片描述

1.3 搜索镜像

docker search [名称]

支持的命令:

名称默认作用
–automatedfalse仅显示自动创建的镜像
–no-truncfalse输出信息不截断
-s,–star0指定星级以上的镜像

1.4 删除镜像

docker rmi [镜像名]

在这里插入图片描述

如果你正在使用一个容器,该镜像无法删除
在这里插入图片描述
在这里插入图片描述

此刻你可以使用-f参数来强行删除,但是这并不正确,默认情况您要先停止容器,删除容器,再删除镜像,

1.5 创建镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS内容:

  • -a,–author=“”,表示作者信息
  • -c,–change=[],表示提交时候执行的DockerFile指令
  • -m,–message=“”,表示消息
  • -p,–pause=true,表示提交时暂停容器运行

首先启动一个容器:
在这里插入图片描述

接着执行:
在这里插入图片描述

查看到有test标签为0.1的镜像即为成功。
在这里插入图片描述

本地模板导入

cat [本地模板] | docker import - [自己定义的镜像名]

1.6 存出和载入镜像

存出镜像

docker save -o [存出的文件名] [IMAGE[:TAG]]
在这里插入图片描述

载入镜像

docker load --input [文件名] 或者 docker load < [文件名]
在这里插入图片描述

1.7 上传镜像

docker push NAME[:TAG] | [REGISTERY_HOST[:REGISTRY_HOST]/]NAME[:TAG]

首先再Docker Hub先创建一个仓库:
https://hub.docker.com/

然后为你需要提交的镜像打一个标签,注意!!这里标签需要对应你所建立的仓库名

在这里插入图片描述
注意如果显示冒号:denied: requested access to the resource is denied
有可能是没有登录,执行:docker login(没有账号的要记得去Docker Hub中创建噢)

2. 使用Docker容器

2.1 创建容器

  1. create

docker create -it ubuntu:latest // 创建,但是并不会运行
docker ps -a // 查看目前存在的容器

在这里插入图片描述

在这里插入图片描述

create命令与容器运行模式相关的选项:
在这里插入图片描述

create命令与容器环境和配置相关的选项:
在这里插入图片描述

create命令与容器资源限制和安全保护相关的选项
在这里插入图片描述

  1. 启动容器

docker start 06
在这里插入图片描述

  1. 新建并且创建容器
    除了创建容器后通过start命令来启动,也可以执行新建并且创建,所需命令主要为docker run 等价于,先docker createdocker start

docker run ubuntu /bin/echo ‘hello world’

重点:所执行的操作:

  • 检查本地是否存在指定的镜像,不存在就从公有镜像中下载
  • 利用镜像创建一个容器,并且启动
  • 分配一个文件系统给容器,并在只读的镜像层外面挂在一个可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中
  • 从网桥的地址池配置一个IP地址给容器
  • 执行用户特定的程序应用
  • 执行完毕后容器被自动终止。

执行:docker run -it ubuntu /bin/bash
其中,-t表示Docker 分配一个伪终端并绑定到容器的标准输出上,-i则表示容器的标准输入保持打开
在这里插入图片描述
运行容器时常见的错误:

  • 125:Docker daemon 执行错误,例如制定了不支持的Docker命令参数
  • 126:所指定命令无法执行,例如权限错误
  • 127:容器内命令无法找到
  1. 守护态运行

docker run -d ubuntu /bin/sh -c “while true;do echo hello world;sleep 1;done” // 会在后台持续运行
docker ps
docker logs [id] // 查看输出信息
在这里插入图片描述
在这里插入图片描述

2.2 终止容器

在Docker中可以使用docker stop来终止一个运行中的容器。

docker stop [id]

注意docker kill 命令会直接发送 SIGKILL信号来强行终止容器

docker restart // 重新启动

2.3 进入容器

2.3.1 attach命令

docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] 容器名

描述选项

命令描述
–detach-keys退出attach的快捷键,默认是CTRL-p CTRL-q
–no-stdin是否关闭标准输入,默认true
–sig-proxy是否代理收到的系统信号给进程,默认true

在这里插入图片描述

使用attach命令有时候并不方便,多个窗口同事attach连接到同一个容器的时候,所有窗口都会显示同步,所以当阻塞时,便无法使用了

2.3.2 exec命令

docker exec [OPTIONS] 容器名

这里我们主要说几个重要的OPTIONS

命令描述
-i,–interative打开标准输入接受用户输入命令,默认为false
–privileged是否给执行命令最高权限,默认false
-t,–tty分配伪终端,默认false
-u,–user=“”执行命令的用户名或者ID

在这里插入图片描述

注意:通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作时最为推荐的方式

2.4 删除容器

docker rm [OPTIONS] 容器名|容器ID

这里我们主要说几个重要的OPTIONS

命令描述
-f,–force是否强行终止并且删除一个容器
-l,–link删除容器的链接,但保留容器
-v,–volumes删除容器挂在数据卷

在这里插入图片描述

2.5 导出和导入

2.5.1. 导出容器

docker export [-o | --output[=“”]] 容器名 // -o表示导出的tar文件名

在这里插入图片描述

2.5.2 导入容器

docker import [-c|–change[=“”]] [-m|message[=“”]] file|URL-[REPOSITORY[:TAG]] // -c 可以执行DOCKERFILE指令,后面会说
在这里插入图片描述

**和load的区别:**load来导入镜像存储文件到本地镜像库,import导入一个容器快照到本地镜像库,容器快照文件会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积因此更大。

3. 访问Docker 仓库

仓库是集中存放镜像的地方,分公共仓库和私有仓库

3.1 Docker Hub公共镜像市场

使用步骤:

  1. 登录:docker login,输入用户名密码,可以完成注册或者登录
  2. docker search:可以查找镜像
  3. docker pull:拉取到本地
    在这里插入图片描述
    我们可以通过-s N参数可以指定仅显示评价为N星以上的镜像

自动创建

自动创建功能对于需要经常升级镜像内的程序来说,十分方便。有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。
而自动创建允许用户通过Docker Hub指定跟踪一个目标网站(目前支持GitHub或者BitBucket)上的项目,一旦项目发生新的提交,则自动执行创建。

操作步骤:

  1. 创建并登录Docker Hub,以及目标网站:*在目标网站中连接帐户到Docker Hub
  2. 在Docker Hub中配置一个“自动创建”
  3. 选取一个目标网站中的项目(需包含Dockerfile)和分支
  4. 指定Dockerfile位置,并提交创建

3.2 搭建本地仓库

可以通过官方提供的:docker run -d -p 5000:5000 register 来搭建
默认仓库创建在容器的/tmp/registry目录下,可以通过-v来修改。

4. Docker 数据管理

容器管理数据的两种主要方式:

  1. 数据卷:容器内数据直接映射到本地主机
  2. 数据卷容器:使用特定容器维护数据卷

4.1 数据卷

4.1.1 在容器内创建

docker run -d -P --name web -v /webapp training/webapp python app.py

-v标记可以创建多个数据卷。上述代码表示使用training/webapp镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录
-P表示容器服务暴露的端口,自动映射到本地的临时端口。

4.1.2 挂载一个主机目录作为数据卷

docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py

表示加载主机的/src/webapp目录到容器的/opt/webapp目录

docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py

默认的数据卷是读写模式,可以增加:ro表示为只读

4.1.3 挂在一个本地主机文件作为数据卷

-v 可以从主机挂载单个文件到容器中作为数据卷(**不推荐**)

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash

4.2 数据卷容器

docker run -it -v /dbdata --name dbdata ubuntu // 创建一个dabata数据卷容器 并且创建一个数据卷挂载到/dbdata
ls // 查看/dbdata

可以使用-v在其他容器中来挂载dbdata容器中的数据卷

docker run -it -v dbdata --name db1 ubuntu
docker run -it -v dbdata --name db2 ubuntu

这样三个容器在任何一方在该目录下的写入,其他容器都可以看到。

可以多次使用 --volumes-from|-v 参数来从多个容器挂载多个数据卷,还可以从其他已经挂载了容器卷的容器来挂载数据卷。

最后:注意!如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用docker rm -v 命令来指定删除关联的容器

总结

本章主要描述了Docker的基本命令,包括镜像:创建、删除、标签等,并且如何从远程仓库拉取下来,容器的运行如何进入容器等。

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

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

相关文章

Jetson Orin安装riva以及llamaspeak,使用 Riva ASR/TTS 与 Llama 进行实时交谈,大语言模型成功运行笔记

NVIDIA 的综合语音 AI 工具包 RIVA 可以处理这种情况。此外&#xff0c;RIVA 可以构建应用程序&#xff0c;在本地设备&#xff08;如 NVIDIA Jetson&#xff09;上处理所有这些内容。 RIVA 是一个综合性库&#xff0c;包括&#xff1a; 自动语音识别 &#xff08;ASR&#x…

尽量避免删改List

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

golang 图片加水印

需求&#xff1a; 1&#xff0c;员工签到图片加水印 2&#xff0c;水印文字需要有半透明的底色&#xff0c;避免水印看不清 3&#xff0c;图片宽设置在600&#xff0c;小于600或者大于600都需要等比例修改图片的高度&#xff0c;保持水印在图片中的大小和位置 4&#xff0c;处理…

摸鱼摸出来的vue3+element-plus毒蘑菇后台管理:新标签页的实现。

在浏览器中&#xff0c;点击标签页右边的加号可以新加一个标签页&#xff0c;所以&#xff0c;在毒蘑菇后台管理&#xff08;简称毒蘑菇儿&#xff09;中也可以这样操作。 点击标签页右边的按钮就可以打开一个新标签页了&#xff0c;可以打开多个&#xff0c;互不冲突&#xff…

Animate 2024(Adobe an2024)

Animate 2024是一款由Adobe公司开发的动画和互动内容创作工具&#xff0c;是Flash的演进版本。Animate 2024为设计师和开发者提供了更丰富的功能&#xff0c;让他们能够创建各种类型的动画、交互式内容和多媒体应用程序。 Animate 2024具有以下特点&#xff1a; 强大的设计工…

UE5.1_Gameplay Debugger启用

UE5.1_Gameplay Debugger启用 重点问题&#xff1a; Gamplay Debugger启用不知道&#xff1f; Apostrophe、Tilde键不知道是哪个&#xff1f; Gameplay调试程序 | 虚幻引擎文档 (unrealengine.com) Gameplay Debugger

一些深度学习训练过程可视化以及绘图工具

常见的可视化方法 深度学习训练过程的可视化是一个重要的环节&#xff0c;它可以帮助研究人员和工程师更好地理解和调整他们的模型。常见的可视化方法包括&#xff1a; 损失和准确率曲线&#xff1a; 这是最常见的可视化类型&#xff0c;通常在训练过程中绘制损失函数和准确率…

【网络技术】【Kali Linux】Wireshark嗅探(三)用户数据报(UDP)协议

一、实验目的 本次实验使用wireshark流量分析工具进行网络嗅探&#xff0c;旨在了解UDP协议的报文格式。 二、网络环境设置 本次实验使用Kali Linux虚拟机完成&#xff0c;主机操作系统为Windows 11&#xff0c;虚拟化平台选择Oracle VM VirtualBox&#xff0c;组网模式选择…

软件测试/测试开发丨Windows系统chromedriver安装与环境变量配置

一、selenium 环境配置 1、chrome 浏览器的安装与配置 目前比较常用的浏览器是 Google Chrome 浏览器&#xff0c;所以本教程以 chrome 为主&#xff0c;后面简介一下其他浏览器的环境配置。 &#xff08;1&#xff09;chrome 下载: www.google.cn/chrome/ &#xff08;2&a…

日志记录、跟踪和指标

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 日志记录、跟踪和指标是系统可观察性的三大支柱。 下图显示了它们的定义和典型架构。 记录 日志记录系统中的离散事件。例如&#xff0c;我们可以将传入请求或对…

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 &#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 &#xff08;…

ubuntu python播放MP3,wav音频和录音

目录 一.利用pygame&#xff08;略显麻烦&#xff0c;有时候播放不太正常&#xff09;1.安装依赖库2.代码 二.利用mpg123&#xff08;简洁方便&#xff0c;但仅争对mp3&#xff09;1.安装依赖库2.代码 三.利用sox&#xff08;简单方便&#xff0c;支持的文件格式多&#xff09;…

jvm实战之-常用jvm命令的使用

各命令的使用 JMAP 1、查看内存信息&#xff0c;对象实例数、对象占有大小 jmap -histo 进程号>./log.txt2、查看堆的配置信息和使用情况 jmap - heap 进程号3、将堆的快照信息dump下来&#xff0c;使用java自带的jvisualvm.exe打开分析 jmap -dump:formatb,filedump.h…

oracle学习(5)

数据处理 SQL语言的类型&#xff1a; 1. 数据库中&#xff0c;称呼增删改查&#xff0c;为DML语句。(Data Manipulation Language 数据操纵语言)&#xff0c;就是指代&#xff1a; insert、update、delete、select这四个操作。 2. DDL语句。(Data Definition Language 数据…

提升数据库性能的关键指南-Oracle AWR报告

文章目录 一、了解AWR报告&#xff1a;数据库性能的仪表盘二、生成AWR报告三、解读AWR报告的关键部分1.报告开头的系统基础信息2.ADDM发现3.负载概览(Load Profile)4.参数文件5.顶级前台等待事件6.SQL 统计信息-顶级SQL7.SGA Advisory AND PAG Advisory 一、了解AWR报告&#x…

帆软报表中定时调度中的最后一步如何增加新的处理方式

在定时调度中,到调度执行完之后,我们可能想做一些别的事情,当自带的处理方式不满足时,可以自定义自己的处理方式。 产品的处理方式一共有如下这些类型: 我们想在除了上面的处理方式之外增加自己的处理方式应该怎么做呢? 先看下效果: 涉及到两方面的改造,前端与后端。…

出海合规云安全,AWS Landing Zone解决方案建立安全着陆区

在出海的大环境中&#xff0c;企业数字化转型的趋势之一就是上云。然而&#xff0c;上云也带来了新的挑战&#xff0c;特别是对企业的 IT 建设和管理提出了更高的要求。为了构建一个安全合规的云上信息系统环境&#xff0c;满足企业中不同用户的快速增长、资源访问可控、成本可…

动态新增input输入框

实现原理&#xff0c;修改绑定数组的长度。 需要绑定的数组 memberList: [{userName: ,phone: ,position: }], 点击时触发修改绑定数组长度的方法 addItem() {this.memberList.push({name: , phone: , post: })}, deleteItem(item, index) {this.inputForm.memberList.splice(i…

02.Git远程仓库

一、常用的托管服务 1.gitHub 一个面向开源及私有软件项目的托管平台&#xff0c;只支持Git作为唯一的版本库格式进行托管。 2.码云(gitee) 是国内的一个代码托管平台&#xff0c;服务器在国内&#xff0c;所有相较于gitHub使用起来更加方便一点。 3.gitLab 是一个用于仓库管…

如何在MAC OS中的XCODE下添加 <bits/stdc++.h>

mac上使用的编译器是Clang&#xff0c;但是没有万能头文件bits/stdc.h\&#xff0c;本文介绍如何添加万能头文件 Xcode 版本&#xff1a;15.1 - 打开应用程序-Xcode-右键显示包内容 Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/includ…