ubuntu 22.04 安装 Docker Desktop 及docker介绍

2023-11-16

目录

一、Docker Desktop 安装

1、我们先去官网下载安装包

 2、Install Docker Desktop on Ubuntu

3、Launch Docker Desktop

二、Docker 介绍

什么是docker

如何使用docker

docker是如何工作的

docker build

 docker run

 docker pull


一、Docker Desktop 安装

1、我们先去官网下载安装包

 2、Install Docker Desktop on Ubuntu

For non-Gnome Desktop environments, gnome-terminal must be installed:

sudo apt install gnome-terminal

Uninstall the tech preview or beta version of Docker Desktop for Linux. Run:

sudo apt remove docker-desktop
or
sudo apt remove docker*

For a complete cleanup, remove configuration and data files at $HOME/.docker/desktop, the symlink at /usr/local/bin/com.docker.cli, and purge the remaining systemd service files.

rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop

Install the package with apt as follows:

sudo apt-get update
sudo apt-get install ./docker-desktop-<version>-<arch>.deb

3、Launch Docker Desktop

启动Docker

systemctl --user start docker-desktop

检查版本:

#docker compose version
Docker Compose version v2.17.3

#docker --version
Docker version 23.0.5, build bc4487a

#docker version
Client: Docker Engine - Community
 Cloud integration: v1.0.31
 Version:           23.0.5
 API version:       1.42
<...>

设置开机自启动

To enable Docker Desktop to start on login, from the Docker menu, select Settings > General > Start Docker Desktop when you log in.

Alternatively, open a terminal and run:

systemctl --user enable docker-desktop

二、Docker 介绍

什么是docker

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系

此外docker的另一个好处就是快速部署,这是当前互联网公司最常见的一个应用场景,一个原因在于容器启动速度非常快,另一个原因在于只要确保一个容器中的程序正确运行,那么你就能确信无论在生产环境部署多少都能正确运行。

如何使用docker

docker中有这样几个概念

  • dockerfile
  • image
  • container

实际上你可以简单的把image理解为可执行程序,container就是运行起来的进程。

那么写程序需要源代码,那么“写”image就需要dockerfile,dockerfile就是image的源代码,docker就是"编译器"。

因此我们只需要在dockerfile中指定需要哪些程序、依赖什么样的配置,之后把dockerfile交给“编译器”docker进行“编译”,也就是docker build命令,生成的可执行程序就是image,之后就可以运行这个image了,这就是docker run命令,image运行起来后就是docker container。

docker是如何工作的

docker build

当我们写完dockerfile交给docker“编译”时使用这个命令,那么client在接收到请求后转发给docker daemon,接着docker daemon根据dockerfile创建出“可执行程序”image

 docker run

有了“可执行程序”image后就可以运行程序了,接下来使用命令docker run,docker daemon接收到该命令后找到具体的image,然后加载到内存开始执行,image执行起来就是所谓的container

 docker pull

其实docker build和docker run是两个最核心的命令,会用这两个命令基本上docker就可以用起来了,剩下的就是一些补充。

那么docker pull是什么意思呢?

我们之前说过,docker中image的概念就类似于“可执行程序”,我们可以从哪里下载到别人写好的应用程序呢?很简单,那就是APP Store,即应用商店。与之类似,既然image也是一种“可执行程序”,那么有没有"Docker Image Store"呢?答案是肯定的,这就是Docker Hub,docker官方的“应用商店”,你可以在这里下载到别人编写好的image,这样你就不用自己编写dockerfile了。

docker registry 可以用来存放各种image,公共的可以供任何人下载image的仓库就是docker Hub。那么该怎么从Docker Hub中下载image呢,就是这里的docker pull命令了

因此,这个命令的实现也很简单,那就是用户通过docker client发送命令,docker daemon接收到命令后向docker registry发送image下载请求,下载后存放在本地,这样我们就可以使用image了。

参考:

Install Docker Desktop on Ubuntu | Docker Documentation
什么是Docker?看这一篇干货文章就够了! - 知乎

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

ubuntu 22.04 安装 Docker Desktop 及docker介绍 的相关文章

  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • Logrotate - nginx 日志不在 docker 容器内旋转

    我有一个运行 nginx 的 docker 容器 它正在将日志写入 var log nginxLogrotate 安装在 docker 容器中 并且 nginx 的 logrotate 配置文件已正确设置 尽管如此 logrotate 仍不
  • docker中CREATED容器是什么意思?

    我有点困惑docker容器的状态 尤其是与状态为已创建 我知道当容器正在运行状态如下所示 root labadmin VirtualBox RAGHU DOCKER docker ps CONTAINER ID IMAGE COMMAND
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 无法访问本地 Docker 容器上的 Asp.Net Core

    我在 asp net core 中创建了一个应用程序 并创建了一个 dockerfile 来生成本地映像并运行它 FROM microsoft dotnet latest COPY app WORKDIR app RUN dotnet re
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数

随机推荐

  • vs code 国内镜像源

    我们在去 vs code 官网下载软件时 会发现下载速度非常的慢 这是因为vs code官网本身在国外 离得比较远 自然下载速度快不起来了 如直接使用下面的链接 https az764295 vo msecnd net stable f80
  • python实现批量翻译——你不会还在一个个翻译吧

    python实现翻译 translate 语句 文本 google translate 语句 import pandas as pd from translate import Translator translator Translato
  • linux服务器成功卸载和安装anaconda(详细)

    卸载anaconda 只需要移除其文件夹即可 sudo rm rf path anaconda3 下载anaconda 在官网查找一下自己需要的anaconda版本 下载之后是一个 sh文件 并将其上传至服务器节点 也可以在清华源节点进行下
  • Linux基础笔记10

    find 常用示例 用来在指定目录下查找文件 任何位于参数之前的字符串都将被视为欲查找的目录名 如果使用该命令时 不设置任何参数 则 find 命令将在当前目录下查找子目录与文件 并且将查找到的子目录和文件全部进行显示 学习参考博文 骏马金
  • vue3实现H5监听浏览器回退并阻止回退

    当你的移动端页面有弹窗的组件并且这个组件不是来自于某些知名的组件库 你是否有这样的需求 当用户唤起弹窗之后又按下了手机自带的回退键 弹窗之前的页面也被关掉了 而用户本身的意愿是关掉弹窗而已 如果你也有这样的诉求 这篇文章帮你解决 1 给hi
  • 在不支持AirDrop的Mac上开启和使用AirDrop的方法

    本帖最后由 luciiferre 于 12 11 18 06 54 编辑 苹果为OS X 10 7 Lion系统加入了全新的AirDrop功能 该功能允许两台Mac之间无线传输文件 用户无需设置 只需要打开AirDrop文件夹即可查看到其他
  • 计算机网络之物理层

    目录 一 物理层概述 二 数据通信的基础知识 2 1数据通信系统的模型 2 2关于信道的几个基本概念 2 3信道的极限容量 三 物理层下面的传输媒体 3 1导引型传输媒体 3 2非导引型传输媒体 四 信道复用技术 五 数字传输系统 六 宽带
  • 华为OD机试真题 Java 实现【字符串加密】【2023Q1 100分】,附详细解题思路

    一 题目描述 有一种技巧可以对数据进行加密 它使用一个单词作为它的密匙 下面是它的工作原理 首先 选择一个单词作为密匙 如TRAILBLAZERS 如果单词中包含有重复的字母 只保留第1个 将所得结果作为新字母表开头 并将新建立的字母表中未
  • 闭环系统的零极点图判定稳定性_三步教你设计运放电路稳定性

    1 前言 集成运算放大器的参数有很多 但涉及到实际应用环境的不同 一些参数非常重要 另外一些则相对次要 例如 在交流高频领域 会重视带宽和压摆率 而在直流精密场合 则重视输入失调电压 输入偏置电流 还有一些参数 不管直流还是交流 都会重点关
  • 清华大学开源的chatGLM-6B部署实战

    Windows部署 win10 通过wsl部署 常见问题 torch cuda OutOfMemoryError CUDA out of memory 在Windows的系统环境变量中增加 变量名 PYTORCH CUDA ALLOC CO
  • 通过alter table A engine=innodb来重建表

    1 业务场景 即为什么要重建表 由于前期的存储设计不合理 表里有个字段 用于存储大段字符串 导致存储到磁盘的空间极大 严重影响表相关的增删改查速度 所有需要对表存储设计进行重构 并对表进行重建 2 实践记录 我们业务场景是由软删字段的 de
  • C++,类的多态

    一 多态的基本概念 多态 父类的指针或引用 指向或初始化子类的对象 调用子类对父类重新的函数 进而展开子类的功能 函数重新的必要条件 必须有继承关系 子类和父类有同名同类型的函数 父类中的该函数必须是虚函数 虚函数 在函数前加上virtua
  • K8s Kubernetes集群部署

    root master yum y install docker ce root master systemctl enable now docker Created symlink etc systemd system multi use
  • QT取消标题栏,如何实现窗口移动

    qt自带的标题栏在多个平台都显示的不一样 而且在常用的window平台也非常的不好看 所以我们经常会用到的美化方式就是会取消标题栏的显示 但是取消标题栏的显示就会出现一个问题就是无法实现窗口的移动 所以这里给出一个方法实现左键按压窗口控件任
  • MATLAB算法实战应用案例精讲-【异常检测】OCSVM算法(附Python和MATLAB代码)

    目录 前言 几个高频面试题目 1 OneClass 与二分类 多分类的区别
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之非阻塞缓存(四)

    优化四 非阻塞缓存 提高缓存带宽 对于允许乱序执行的流水线计算机 处理器不需要因数据高速缓存未命中而停止 例如 处理器可以继续从指令高速缓存获取指令 同时等待数据高速缓存返回丢失的数据 非阻塞高速缓存或无锁高速缓存允许数据高速缓存在未命中期
  • 继承中方法的覆盖重写_概念与特点,

    重写 Override 概念 在继承关系当中 方法的名称一样 参数列表也一样 重写 Override 方法的名称一样 参数列表 也一样 覆盖 覆写 重载 Overload 方法的名称一样 参数列表 不一样 方法的覆盖重写特点 创建的是子类对
  • 必刷算法题之字符串(题目及代码)---C++

    文章目录 第1题 执行操作后的变量值 第2题 罗马数字转整数 第3题 句子中的最多单词数 第4题 左旋转字符串 第5题 宝石与石头 第6题 Excel 表中某个范围内的单元格 第7题 括号的最大嵌套深度 第8题 分割平衡字符串 第9题 最长
  • CACC 协同式自适应巡航模型 搭建四辆车在carsim和simulink进行协同式自适应巡航 其中间距策略考虑领航车速的影响,各个车辆采用分层式控制,分层式控制器主要分为下层控制

    CACC 协同式自适应巡航模型 仿真软件版本 Carsim2016 Matlab2018b及以上 搭建四辆车在carsim和simulink进行协同式自适应巡航 其中间距策略考虑领航车速的影响 各个车辆采用分层式控制 分层式控制器主要分为下
  • ubuntu 22.04 安装 Docker Desktop 及docker介绍

    目录 一 Docker Desktop 安装 1 我们先去官网下载安装包 2 Install Docker Desktop on Ubuntu 3 Launch Docker Desktop 二 Docker 介绍 什么是docker 如何