2024年10月dockerhub(docker 云和 docker hub的区别)

 更新时间:2024-10-12

  ⑴dockerhub(docker云和dockerhub的区别

  ⑵docker云和dockerhub的区别

  ⑶dockerversion显示Docker版本信息。.dockerinfo显示Docker系统信息,包括镜像和容器数。.dockersearchdockersearchtermdockersearch-sdjango从DockerHub中搜索符合条件的镜像。--automated只列出automatedbuild类型的镜像;--no-trunc可显示完整的镜像描述;-s列出收藏数不小于的镜像。.dockerpulldockerpulldockerpulllaozhu/telescope:latest从DockerHub中拉取或者更新指定镜像。-a拉取所有tagged镜像。.dockerloginrootmoon:~#dockerloginUsername:usernamePassword:****Email:按步骤输入在DockerHub注册的用户名、密码和邮箱即可完成登录。.dockerlogout运行后从指定服务器登出,默认为官方服务器。.dockerimagesdockerimages列出本地所有镜像。其中对镜像名称进行关键词查询。-a列出所有镜像(含过程镜像;-f过滤镜像,如:-f只列出满足dangling=true条件的镜像;--no-trunc可显示完整的镜像ID;-q仅列出镜像ID。--tree以树状结构列出镜像的所有提交历史。.dockerps列出所有运行中容器。-a列出所有容器(含沉睡镜像;--before=“nginx“列出在某一容器之前创建的容器,接受容器名称和ID作为参数;--since=“nginx“列出在某一容器之后创建的容器,接受容器名称和ID作为参数;-f列出满足exited=《int》条件的容器;-l仅列出最新创建的一个容器;--no-trunc显示完整的容器ID;-n=列出最近创建的个容器;-q仅列出容器ID;-s显示容器大小。.dockerrmidockerrmidockerrminginx:latestpostgres:latestpython:latest从本地移除一个或多个指定的镜像。-f强行移除该镜像,即使其正被使用;--no-prune不移除该镜像的过程镜像,默认移除。.dockerrmdockerrmdockerrmnginx-nginx-db-db-sudodockerrm-l/webapp/redis-f强行移除该容器,即使其正在运行;-l移除容器间的网络连接,而非容器本身;-v移除与容器关联的空间。.dockerhistorydockerhistory“o“》《image》查看指定镜像的创建历史。--no-trunc显示完整的提交记录;-q仅列出提交记录ID。.dockerstart|stop|restartdockerstart|stop“p“》|restart启动、停止和重启一个或多个指定容器。-a待完成-i启动一个容器并进入交互模式;-t停止或者重启容器的超时时间(秒,超时后系统将杀死进程。.dockerkilldockerkill“o“》杀死一个或多个指定容器进程。-s“KILL“自定义发送至容器的信号。.dockereventsdockereventsdockerevents--since=“s“》““dockerevents--until=“s“》““从服务器拉取个人动态,可选择时间区间。.dockersavedockersave-i“debian.tar“dockersave》“debian.tar“将指定镜像保存成tar归档文件,dockerload的逆操作。保存后再加载(saved-loaded的镜像不会丢失提交历史和层,可以回滚。-o“debian.tar“指定保存的镜像归档。.dockerloaddockerloaddockerload《debian.tardockerload-i“debian.tar“从tar镜像归档中载入镜像,dockersave的逆操作。保存后再加载(saved-loaded的镜像不会丢失提交历史和层,可以回滚。-i“debian.tar“指定载入的镜像归档。.dockerexportdockerexport《container》dockerexportnginx-》export.tar将指定的容器保存成tar归档文件,dockerimport的逆操作。导出后导入(exported-imported)的容器会丢失所有的提交历史,无法回滚。.dockerimportdockerimporturl|-“o“》catexport.tar“p“》|dockerimport-imported-nginx:latestdockerimport-astdin指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项;-d后台运行容器,并返回容器ID;-i以交互模式运行容器,通常与-t同时使用;-t为容器重新分配一个伪输入终端,通常与-i同时使用;--name=“nginx-lb“为容器指定一个名称;--dns...指定容器使用的DNS服务器,默认和宿主一致;--dns-searchexample.指定容器DNS搜索域名,默认和宿主一致;-h“mars“指定容器的hostname;-eusername=“ritchie“设置环境变量;--env-file=从指定文件读入环境变量;--cpuset=“-“or--cpuset=“,,“绑定容器到指定CPU运行;-c待完成-m待完成--=“bridge“指定容器的网络连接类型,支持bridge/host/nonecontainer:《name|id》四种类型;--link=待完成--expose=待完成

  ⑷如何查看dockerhub的所有镜像

  ⑸让我们通过进一步学习Docker镜像来继续我们的Docker之旅。Docker镜像是由文件系统叠加而成。最底端是一个引导文件系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导文件系统有什么交互。实际上,当一个容器启动后,它将会被移到内存中,而引导文件系统则会被卸载(unmount,以留出更多的内存供initrd磁盘镜像使用。到目前为止,Docker看起来还很像一个典型的Linux虚拟化栈。实际上,Docker镜像的第二层是root文件系统rootfs,它位于引导文件系统之上。rootfs可以是一种或多种操作系统(如Debian或者Ubuntu文件系统。在传统的Linux引导过程中,root文件系统会最先以只读的方式加载,当引导结束并完成了完整性检查之后,它才会被切换为读写模式。但是在Docker里,root文件系统永远只能是只读状态,并且Docker利用联合加载(unionmount技术又会在root文件系统层上加载更多的只读文件系统。联合加载指的是一次同时加载多个文件系统,但是在外面看起来只能看到一个文件系统。联合加载会将各层文件系统叠加到一起,这样最终的文件系统会包含所有底层的文件和目录。Docker将这样的文件系统称为镜像。一个镜像可以放到另一个镜像的顶部。位于下面的镜像称为父镜像(parentimage,可以依次类推,直到镜像栈的最底部,最底部的镜像称为基础镜像(baseimage。最后,当从一个镜像启动容器时,Docker会在该镜像的最顶层加载一个读写文件系统。我们想在Docker中运行的程序就是在这个读写层中执行的。这听上去有点儿令人迷惑,我们最好还是用一张图来表示一下,如图-所示。图-Docker文件系统层当Docker第一次启动一个容器时,初始的读写层是空的。当文件系统发生变化时,这些变化都会应用到这一层上。比如,如果想修改一个文件,这个文件首先会从该读写层下面的只读层复制到该读写层。该文件的只读版本依然存在,但是已经被读写层中的该文件副本所隐藏。通常这种机制被称为写时复制(copyonwrite,这也是使Docker如此强大的技术之一。每个只读镜像层都是只读的,并且以后永远不会变化。当创建一个新容器时,Docker会构建出一个镜像栈,并在栈的最顶端添加一个读写层。这个读写层再加上其下面的镜像层以及一些配置数据,就构成了一个容器。在上一章我们已经知道,容器是可以修改的,它们都有自己的状态,并且是可以启动和停止的。容器的这种特点加上镜像分层框架(image-layeringframework,使我们可以快速构建镜像并运行包含我们自己的应用程序和服务的容器。创建DockerHub账号构建镜像中很重要的一环就是如何共享和发布镜像。可以将镜像推送到DockerHub或者用户自己的私有Registry中。为了完成这项工作,需要在DockerHub上创建一个账号,可以从或者如果原来已经存在settings.xml文件了,

  ⑹如何提交docker镜像到DockerHub

  ⑺初次安装部署好docker后,大多数镜像可以从DockerHub提取,但是大多数人都希望自己可以完全自定义一个镜像,那么这里需要一个第三方工具febootstrapepel的源提供febootstrap的RPM包yuminstalldocker-iofebootstrap-yservicedockerstartchkconfigdocker--levelon复制代码制作CentOS.镜像目录febootstrap-iyum-iiputils-iiproute-ibash-ivim-minimal-icoreutils-itar-i-toolscentosbase《ahref=复制代码-i表示镜像里面安装的RPM包(包括一些人为有必要的软件包)centos表示镜像的版本说明base表示生成的镜像目录后面之后了系统安装源和更新源为USTC安装执行后,会开始一系列的RPM包下载安装,过程与yum类似,安装完成后当前目录会多了base目录,里面就是一个镜像的系统文件进入base目录等于进入镜像的根目录#cdbase/#lsbinbootdevetchomeliblibmediamntoptprocrootsbinselinuxsrvsystmpusrvar复制代码可以像一般的系统文件一样先做一些修改配置,例如配置第三方yum源等等把base目录把所有文件打包成二进制文件后导入docker创建为镜像cd~/root/base/&&tar-c.|dockerimport-centos:base复制代码dockerimages可以查看镜像的信息一个基本centos镜像创建完毕,下面再利用Dokcerfile制作mysql镜像catDockerfileFROMcentos:baseMAINTAINERLion““VOLUME/var/lib/mysqlRUNyuminstallmysql-servermysql-yRUNecho-ne“WORKING=yes\nHOSTNAME=mysql“》/etc/sysconfig/workRUNecho-ne“bind-address=...\ndefault-storage-engine=innodb\ninnodb_file_per_table\ncollation-server=utf_general_ci\ninit-connect=’SETNAMESutf’\ncharacter-set-server=utf“》insertRUNsed-i“/user=mysql/rinsert“/etc/my.f&&rm-finsertRUNecho-ne“/usr/bin/mysql_install_db\n/usr/bin/mysqld_safe“》》/opt/mysql_startRUNchmod/opt/mysql_startENVPATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:WORKDIR/optEXPOSECMD/bin/sh-cmysql_start复制代码FROM声明以centos:base镜像为基础MAINTAINER声明镜像的维护者信息VOLUME挂载本地目录到容器里/var/lib/mysql目录(这是mysql默认的数据保存目录)由于我希望数据可以持久化防止因为容器误删除而丢失,所以映射到宿主本地目录RUN在镜像中执行安装mysql在新镜像中写入HOSTNAME信息,因为mysql启动过程需要work文件在my.f配置文件插入一些修改配置创建启动脚本声明环境变量制定默认工作目录EXPOSE声明容器需要暴露的端口号CMD是指镜像生成容器后自动执行的命令,类似dockerexec,这里是自动启动mysql服务根据Dockerfile创建mysql服务镜像dockerbuild--rm=true-tmysql:frist.查看镜像的树状关系可以发现,mysql:frist是以centos:base为父镜像

  ⑻DockerHub里的镜像太多了,怎么选择

  ⑼有官方的直接用官方的,也就是标注official的,official的肯定可以用,但未必好用;如果没有官方的就选starts最多的,这种要么是封装的比较早,要么是封装的比较好;但最多的时候,我都是拉下来个裸操作系统,更新源后,按照我自己的思路重新封装新的image,我也知道这样不太符合docker精神,在现阶段讲我认为是最合适的选择毕竟生态还是早期,官方都是简单封装下不怎么好用,相比之下,一些docker运营商比如daocloud和时速云封装的镜像要更好用一些

  ⑽如何使用的dockerhub缓存服务

  ⑾推荐使用Dockerfile方式。服务的管理使用的是supervisord,因为dockerfile里只会有一个cmd生效,如果我想通过ssh去管理容器还要有mysql服务的启动起来cmd的方式就无法实现,当然容器不需要以sshd的方式去管理,这些也都是看自己怎么去使用,比如说我想备份容器里的数据我完全可以使用–volumes-from《容器name》,重启使用dockerrestart《容器id》,我个人也是使用ssh习惯了所以依赖的镜像把ssh服务栽进去了。#docker版本:复制代码代码如下:#dockerversionClientversion:..-rlientAPIversion:.Goversion(client):go..Gitmit(client):fcdOS/Arch(client):linux/amdServerversion:..-rcServerAPIversion:.Goversion(server):go..Gitmit(server):fcdOS/Arch(server):linux/amd

  ⑿如何创建本地dockerhub

  ⒀如何创建本地dockerhubdocker是一个非常好用的虚拟化工具。下面给出建立私有dockerhub的方法。docker将私有hub的环境打包在registryimage中执行指令:dockerrun-p:registry这条指令启动一个基于registryimage的cotainer。并将host主机的port绑定到虚拟机的端口。这样,对该host主机端口的任何访问都转移到虚拟机中。上传image:首先给image赋予一个tagdockertag$ID$IP:$port/$name如dockertagbnb...:/vimID为image的ID,IP为host主机的IP,name为该image的名字dockerpush...:/vim下载image:dockerpull...:/vim

  ⒁dockerhub怎么上传自己的镜像

  ⒂首先注册docker的账户,然后使用dockerlogin登录。使用dockerpush可以将自己的镜像上传上去了。

您可能感兴趣的文章:

相关文章