安装docker、docker engine和docker desktop区别-程序员宅基地

技术标签: kubernetes  容器  docker  

前言

安装docker时,官网有docker desktopdocker engine两种,这两种有什么不同?应该安装哪种呢?
在这里插入图片描述

docker engine vs docker desktop

  • docker desktop包含虚拟机、图形界面及其他特性比如带了一个单节点的kubernetes集群,虚拟机里有一个Docker CE (Docker Community Edition)守护进程。
  • docker engine,根据官方文档包含三部分,
    • 守护进程dockerd
    • api,程序可通过api与dockerd交互
    • 命令行工具客户端docker,命令docker command中的docker

在docker desktop里,docker客户端是在宿主机中,守护进程在虚拟机里。当要访问docker desktop的ip时,要谨记一条-docker network存在于虚拟机中,即使使用docker run --net host那也是使用虚拟机的host network,而不是物理机的network。docker container运行在虚拟机中,其他一切都是结果。
在Windows和MacOS中,要想运行linux容器,必须有虚拟机,在linux中是不需要的;不过,为了一致体验,如果在linux中安装desktop也会安装一个虚拟机。

官方文档是如此描述的Docker Engine

Docker Engine is an open source containerization technology for building and containerizing your applications. Docker Engine acts as a client-server application with:
A server with a long-running daemon process dockerd.
APIs which specify interfaces that programs can use to talk to and instruct the Docker daemon.
A command line interface (CLI) client docker.

docker论坛对docker desktop的描述。

Basically Docker Desktop is a virtual machine + Graphical user interface with some extra features like the new extensions and running a single-node Kubernetes “cluster” easily. Inside the virtual machine there is Docker CE (Docker Community Edition) daemon.

官方文档中提到的docker desktop组成部分。
在这里插入图片描述

结论

  • 如果装在macOS、windows、linux等有图形的桌面电脑,则用docker desktop。比如windows电脑、macos电脑、ubuntu、fedora电脑。
  • 如果装在没有图形的电脑,则用docker engine,比如公司的centos服务器、阿里云的centos服务器等

安装docker engine

以下参考官方文档

  • 安装yum-utils(提供了yum-config-manager)并设置仓库
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 列出仓库中可用的版本并排序
yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
  • 安装指定版本,版本号是第二列,冒号开头后直到第一个连字符,比如第一行中的docker-ce-18.09.1
 sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin

  • 启动docker
sudo systemctl start docker
  • 测试docker engine,这个命令会下载一个测试镜像,容器启动后打印一行文字,然后退出
sudo docker run hello-world
[root@root ~]# sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangjun5159/article/details/127276708

智能推荐

evaluate java_用Java进行动态公式处理-程序员宅基地

文章浏览阅读748次。/*** Created by Teddy on 2017/10/23.*/public classExpressionUtil {/*** 计算List配置了公式的值*@parambeanList*@return*/public static List workOutListBean(List extends BaseEntity>beanList){if(CollectionUtils...._java evaluate

mysql cluster 共享权限_MySQL Cluster 共享权限-程序员宅基地

文章浏览阅读76次。MySQL Cluster API节点 中mysql.user 表为MyISAM引擎,所以每个API都要配置权限系统,MySQL已经为我们提供了共享权限脚本。这个脚本主要作用就是将mysql.user 表MyISAM引擎更换为NDBCLUSTER引擎。[email protected]#share privilege/opt/soft/mysql-cluster-7.2.7/bin/mysq..._授予群集“sqlcluster”访问共享“quorumshare”的权限失败

中科院oracle,中科院ORACLE数据库视频教程总结-程序员宅基地

文章浏览阅读118次。三个默认的用户和密码:sys change_on_install [as sysdba]system managerscott tiger启动:监听程序:lsnrctl start数据库实例:oradim -startup -sid orcl登陆:sqlplus / as sysdba创建用户:create user lisi indentified by lisi;系统权限:grant..._数据是先插入表中,还是先进入new表中

android 字节码分析,Android 字节码动态分析分布式框架-程序员宅基地

文章浏览阅读132次。摘要:随着安卓(Android)智能手机和平板设备的流行,运行于上面的各种应用也广泛的深入到人们的生活中,安卓应用程序扮演了越来越重要的角色.因此,如何保证应用质量以提高用户体验也引起越来越多学术界和企业界的关注.程序分析是实现这个目标可以采取的最好的技术之一.程序分析是一种对应用程序的行为自动分析的技术,它能够被用来提升应用程序的性能,寻找程序的漏洞或者发现程序的恶意行为等.本文的主要工作是基于..._android. 字节码分析

自己实现一个 ping 命令_ping自拟-程序员宅基地

文章浏览阅读2.8k次。目录基础协议基础套接字基础传输层 Stream 和 Datagram Socket网络层 Raw Socket数据链接层 Packet Socket模拟实现 PingICMP 协议实现参考为了加深自己对计算机网络的理解, 想自己实现一些操作系统提供的网络工具, 于是先从 ping 开始首先, ping 命令的作用是检测两个网络设备在 TCP/IP 网络下是否能连通. 其底层基于 ICMP ..._ping自拟

python实现中撤销上一步的代码_PyCharm取消波浪线、下划线和中划线的实现-程序员宅基地

文章浏览阅读341次。默认情况下,PyCharm中如果有无法错误或者不符合PEP8规范代码下面会有波浪线,语法错误波浪线为红色(如下图的第10行),不符合PEP8规范为浅黄色波浪线(如下图的第8行),见下图:那么怎么去掉波浪线呢:方法一:波浪线设置界面从PyCharm界面右下角的小人图标进入:设置:进入波浪线设置界面看看到上方有三个设置项None、Syntax、Inspections,可以拖动箭头设置。1.None表示..._pychram 在注释的网页连接有下划线咋么去掉

随便推点

python中感叹号加等号是什么意思,在等号之前的星号是什么意思(* =)?感叹号怎么办?...-程序员宅基地

文章浏览阅读2.6k次。I found these notations in a css :.nav li ul li a [class*="icol-"] { opacity: 0.5; filter: alpha(opacity=50); padding-top: 4px; }.secNav .chzn-container { width: 100%!important; max-width: 100%; }What..._python里加号等号是什么意思

GeSHi——通用语法高亮显示-程序员宅基地

文章浏览阅读71次。ExamplesCategoryExamplesViewsActionScript246173Ada327881Apache configuration240029AppleScript00ASM227221ASP18686..._geshi 高亮

流媒体服务器显示连接数达到上限,监控流媒体服务器连接数-程序员宅基地

文章浏览阅读1.8k次。监控流媒体服务器连接数 内容精选换一换由源IP地址、源端口、目的IP地址、目的端口、传输层协议这五个元素组成的集合视为一条连接。连接能够区分不同会话,并且对应的会话是唯一的。其中源IP地址和源端口指SNAT转换之后的EIP和它的端口。由于SNAT支持TCP、UDP和ICMP三种协议,每一个目的IP和目的端口,NAT网关最多可支持55000个并发连接。如果目的IP、端口或者协议本章节以Linux操作..._媒体组件所在服务器使用量达到上限

计算机统考多媒体技术操作题,2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题...-程序员宅基地

文章浏览阅读2.6k次。2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题操作题:1、在考生文件夹中,有一个“Test.rar”压缩文件,其中包括“Test1.jpg”、“Test2.docx”和“Test3.docx”三个文件。请将该压缩文件中的“Test1.jpg”解压到考生文件夹下的Test文件夹中。2、在考生文件夹中,有一个“Test.rar”压缩文件,其中包括“Test1.pptx”、“Te..._在考生文件夹中,有一个test file3 文件夹

上善若水……呵呵哒_上善若水,工致精研-程序员宅基地

文章浏览阅读754次。I’m 水货 一枚水货最近要组队了,最近的rank没进过top 10,越来越水。想想这一年,几乎没学什么。不过上次的报告,倒是三天就学了点东西。关键还是要花时间呀~秋天的比赛还有希望吗!!每周两篇解题报告每天学习一种新算法_上善若水,工致精研

java for循环太多_java性能优化之for循环-程序员宅基地

文章浏览阅读1.8k次。今天就来说一下Java代码优化的事情,今天主要聊一下对于for(while等同理)循环的优化。作为三大结构之一的循环,在我们编写代码的时候会经常用到。循环结构让我们操作数组、集合和其他一些有规律的事物变得更加的方便,但是如果我们在实际开发当中运用不合理,可能会给程序的性能带来很大的影响。所以我们还是需要掌握一些技巧来优化我们的代码的。嵌套循环stratTime=System.nanoTime(..._java for循环太多了怎么解决