docker推荐(docker推荐镜像 软路由)
本篇文章给大家谈谈docker推荐,以及docker推荐镜像 软路由对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、学习Docker哪本书最好
- 2、详解Docker——你需要知道的Docker进阶知识二
- 3、好用的Docker Hub镜像推荐
- 4、Docker-可视化管理工具总结-推荐使用Portainer
- 5、项目为什么用docker?
学习Docker哪本书最好
Docker视频雹拦免费下载
链接:
提取码:1r9g
Docker视频|走进Docker|从Docker到CaaS(一)Docker集群管理介绍|从Docker到CaaS(三)Kubernetes|从猛启Docker到CaaS(源知胡六)微服务与CaaS|从Docker到CaaS(二)Docker 容器管理工具|从 Docker 到 CaaS(五)灵雀云部署 Docker 容器|
[img]详解Docker——你需要知道的Docker进阶知识二
Docker镜像
镜像仓库(Repository)用于存放镜像,每个仓库都有唯一的地址,和网址类似。镜像仓库托管在某个 Registry,Registry 和GitHub类似。Docker 提供了一个官方的 Registry,官方 Registry 里的镜像仓库地址可以省去前面的域名前缀,其它 Registry 里的镜像仓库地址必须要指定域名前缀,以保证唯一性。
镜像仓库地址后面可以跟一个 TAG。比如一个镜像名称 ubuntu:14.04 ,冒号前面的 ubuntu 是镜像仓库地址(由于是官方 Registry 里的,可以省略域名前缀),后面的 14.04 是 TAG,TAG 通常设置为镜像的版本号。
Docker 镜像是分层存储的,每一个镜像都由多层组成。镜像之间会森察世共享一些相同的层,从而减小镜像占用的存储空间。
也可以查看指定的镜像:
查看镜像的详细信息
比较常用的配置参数为 -a ,代表下载仓库中所有 TAG 的镜像,默认只下载 latest TAG 的镜像。
如果要下载 ubuntu:14.04 镜像没没,可使用如下命令:
对于我们 pull 的新镜像 ubuntu:14.04 来说,如果我们需要对其进行更新,可以创建一个容器,在容器中进行修改,然后将修改提交到一个新的镜像中。
提交修改使用如下命令:
该命令从一个修改过的容器创建一个新的镜像。例如,我们运行一个容器,然后在其中创建一个文件,最后使用 commit 命令:
通过上述操作我们创建了一个新的镜像,但是本方法不推荐在生产环境使用,因为这种方式的可维护性很差。推荐的创建镜像的方法是使用 Dockerfile ,修改镜像可通过修改 Dockerfile ,然后使用新的 Dockerfile 来构建新的镜像。
docker 可以从一个 Dockerfile 文件中读取指令来构建镜像。 Dockerfile 是一个包含用户构建镜像所需命令的文本文件。在 创建好该文件后,我们此肢可以使用如下命令来构建镜像:
对于一个 Dockerfile 文件内容来说,基本语法格式如下所示:
使用 # 号作为注释,指令( INSTRUCTION )不区分大小写,但是为了可读性,一般将其大写。 Dockerfile 中的指令一般包含下面几个部分:
下面是一个最基本的 Dockerfile :
通过阅读上述内容中我们熟悉的一些 linux 指令,可以很容易的知道该 Dockerfile 将创建一个 apache 镜像。
其中 FROM 指定基础镜像。 RUN 命令默认使用 /bin/sh ,并使用 root 权限执行。 CMD 命令也是默认在 /bin/sh 中执行,但是只能有一条 CMD 指令,如果有多条则只有最后一条会被执行。
下面我们创建一个空目录,在其中编辑 Dockerfile 文件,然后基于此文件构建一个新的镜像:
在构建完成后,我们可以使用该镜像启动一个容器来运行 apache 服务,运行如下命令:
此时,容器启动成功后,并且配置了端口映射,我们就可以通过本机的 8000 端口访问容器 hellodocker3 中的 apache 服务了。我们打开浏览器,输入 localhost:8000
删除 ubuntu:latest 镜像可以使用如下命令:
删除所有的镜像
好用的Docker Hub镜像推荐
刚开始用Docker就碰上Docker Hub国内巨慢的问题,于是第一时间开始寻找解决方案。
他的镜像分为不需要安装任何东西只要改下配置文件的v1和需要安装客户端的v2版本。
鉴于我非常讨厌别人在我机器上装东西,我只用了v1版本。但说实话,加速的程度非常有限,好慢。
;articleId=103049docType=1
不过这个试用下来感觉更加糟糕。。。几乎都指向的是官方镜像地址。
我去,这事儿要么是忽悠液禅,要么就是只有Aliyun上的机器才生效(比如内部DNS上有改动之类的)
根据键咐上述链接的文档配稿埋纯置即可,加速超级快!!!
开始愉快的享受Docker的乐趣。
Docker系列是挖的新坑,未完待续。。。
Docker-可视化管理工具总结-推荐使用Portainer
对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker可视化工具做些总结
UI For Docker是一个使用Docker Remote API 的web接口,目的是提供一个简洁纯净的客户端实现,为了连接和管理Docker; 该工具目前已经无人维护,建议使用下面介绍的portainer
docker run -it -d --name docker-web --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
是一款Docker可视化管理工具,可让您轻松构建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器。
Portainer 将管理容器的复杂性隐藏在易于使用的 UI 后面。通过消除使用 CLI、编写 YAML 或理解清单的需要,Portainer 使部署应用程序和解决问题变得如此简单,任何人都可卜此猛以做到
Portainer 由两个元素组成:Portainer 服务器和 Portainer 代理。两者都在您现有的容器化基础设施上作为轻量级容器运行。Portainer 代理应该部署到集群中的每个节点,并配置为向 Portainer 服务器容器报告。
单个 Portainer 服务器将接受来自任意数量的 Portainer 代理的连接,从而提供从一个集中式界面管理多个集群的能力。为此,Portainer Server 容器需要数据持久性。Portainer 代理是无状态的,数据被传送回 Portainer 服务器容器。
运行下面两条命令即可。这些命令会创建一个Portainer专用的卷,然后在8000和9000端口创建容器并运行。
如果使用Portainer管理本地Docker主机的话,扒友需要绑定/var/run/docker.sock (这里是型桥个知识点,涉及docker 之间通信的问题,以及docker 里运行docker )
docker run --name portainer --restart always -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
然后在浏览器打开对应地址,就会发现成功运行了。第一次运行的时候需要设置账号,然后选择要管理的Docker主机。
注意:portainer/portainer 是 Portainer v1.24.x 的镜像名,现在已弃用;从 2022 年 1 月开始,Portainer 2.0 的所有新版本都将在 portainer/portainer-ce 中发布
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1
docker run -d -p 9000:9000 --name portainer --restart always -v portainer_data:/data portainer/portainer -H tcp://REMOTE_HOST:REMOTE_PORT
ps:-H 后面的remote是你想用portainert管理的docker
只能在创建 Portainer Server 容器时添加本地环境。部署 Portainer 后,您无法添加本地环境
第一次登陆会让选择管理的容器环境,这里可以选择本机 ,通过挂载/var/run/docker.sock 和docker 守护进程通信(如图所示), 关于这部分知识后面会总结分享出来。
之后就可以看到本机上运行的Docker容器了,点击它们还可以进行容器的管理。
左边的条目可以管理卷、创建容器、查看主机信息等等。基本上该有的功能都有了
通过该方式,可以将远程机器添加到Portainer服务端,统一管理远程机器上的容器环境
将 Docker Standalone 主机连接到 Portainer 时,可以使用两种方法。您可以通过 TCP 直接连接到 Docker API,也可以在 Docker Standalone 主机上安装 Portainer 代理并通过代理连接。
1) 通过远程访问TCP:2375端口绑定环境
2) 通过Portainer Agent方式管理docker环境
使用Agent需要在要监控的主机上创建一个portainer agent容器
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.11.1
在k8s集群上执行以下命令
url -L -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml
在远程k8s集群上部署agent后,在Portainer server 上通过nodeport 或者 targetport 进行服务配置,完成k8s集群的连接配置。
LazyDocker是基于终端的一个可视化查询工具,支持键盘操作和鼠标点击。相比Portainer来说可能不那么专业,不过对于开发者来说可能反而更加好用了。因为一般开发者都是使用命令行来运行Docker,偶尔需要图形化查看的时候,就可以使用LazyDocker这个工具。
Lazydocker 的具体特性如下:
当然如果发现LazyDocker挺好用,准备经常使用的话,还可以把它做成缩写添加到shell配置文件中,这样就可以将它变成一个简单的命令。例如我用的是zsh,就将下面这样添加到.zshrc文件中。以后就可以直接用lzd来调用LazyDocker了。
echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" ~/.zshrc
然后就可以在终端中查看Docker容器、镜像和卷的信息了。LazyDocker支持键盘操作和鼠标点击,直接用鼠标点击就可以查看对应信息了
Docker Desktop 是 Docker 官方自带的客户端。 ; 如果是windows用户,想在Windows系统上运行docker容器,可以使用;
项目为什么用docker?
回答之前,先反问一个问题:为什么不用Docker呢?
Docker出现之前,有现在还在用的VMWare虚拟机,有Ghost,部分解决了服务器安装配置的琐碎工作,但是没有解决运行环境的问题。比如常见的环境不一致的问题:开发环境能运行,测试生产环境有bug?还有就是每次新服务器、新环境搭建时无穷无尽的问题。
那么Docker出现后,整个环境被打包起来,也就是将所有安装配置代码化自动化了,结合资源编排和云服务,可以秒启一个集群氏绝化的web服务系统,如果没有容器技术是做不到的。Docker是使用最普遍的容器技术,事实上的容器技术标准。
推荐看一个Docker秒启Web服务的视频:
我可以举几个例子,就可理解为什么要用docker?
用传统的方式上线一个WEB项目,我们的一般做法是在线上服务器中,安装WEB服务器,然后装好数据库,装好其他需要的软件最后把本地己打包好的代码上传至服务器,然后重启就好了。
如果一台服务器上要部署多个项目,每个项目之间无论是在资源的使用,还是之间的冲突。都会让人崩闭核渣溃。更别提有不同的开发语言和开发团队。
现在我们有docker ,可以用docker把应用直接打包封装到一个容器中。容器之间有着进程之间的隔离,在容器中操作不会影响到其他容器的使用。
以前开发一套应用,必须开发机上安装环境,测试机上安装环境,然后部署的服务器上安装环境,而且由于使用的机器不是同样的操作系统,所以有时会出现在本机上没问题,测试时有出问题,甚至开发测试都没问题,一上线就BUG满满。估计大家遇到过与测试之间撕B的场景。
用上docker,无论是在开发机,测试机,生产环境以容器运行,使应用在三种环境下保持一致。
对比虚拟机,docker占用资源更小。而且可以提高服务器的资源利用率。
Docker可以将复杂的应用程序运行环境部署打包,这样就避免开发人员或者运维人员反复部署相同的应用程序运行环境。在如今云计算盛行的情况下,分布式应用和管理变得简单了。基本上云计算服务平台都提供了现成的群集计算服务,这些群集服务无一例外都是基于docker镜像构建的。群集应用的要求就是每个节点的应用程序版本以及环境要一致,一个docker镜像就是一个虚拟主机,只要放到容器中即可实现单机独立运行的效果,大大简化了分布式群集应用的实现过程
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
云计算、大数据,移动技术的快速发展,加之企业业务需求的不断变化,导致企业架构要随时更改以适合业务需求,跟上技术更新的步伐。毫无疑问,这些重担都将压在企业开发人员身上;团队之间如何高效协调,快速交付产品,快速部署应用,以及满足企业业务需求,是开发人员亟需解决的问题。Docker技术恰好可以帮助开发人员解决这些问题。
为了解决开发人员和运维人员之间的协作关系,加快应用交付速度,越来越多的企业引入了DevOps这一概念。但是,传统的开发过程中,开发、测试、运维是三个独立运作的团队,团队之间沟通不畅,开发运维之间冲突时有发生,导致协作效率低下,产品交付延迟, 影响了企业的业务运行。Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式应用可以部署于任何环境中。这样避免了各团队之间的协作问题的出现,成为企业实现DevOps目标的重要工具。以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开轿悄发和交付速度。
此外,与通过Hypervisor把底层设备虚拟化的虚拟机不同,Docker直接移植于Linux内核之上,通过运行Linux进程将底层设备虚拟隔离,这样系统性能的损耗也要比虚拟机低的多,几乎可以忽略。同时,Docker应用容器的启停非常高效,可以支持大规模的分布系统的水平扩展,真正给企业开发带来福音。
Docker很大程度上解决了上述问题,提高开发和运维的工作效率,提高企业的工作效率。
任何一项新技术的出现,都需要一个发展过程,比如云计算为企业所接受用了将近五年左右时间,OpenStack技术也经历了两、三年才受到人们的认可。因此,虽然Docker技术发展很快,但技术还不够成熟,对存储的灵活的支持、网络的开销和兼容性方面还存在限制,这是Docker没有被企业大范围使用的一个主要原因。另外一个原因是企业文化是否与DevOps运动一致,只有企业支持DevOps,才能更大地发挥Docker的价值。最后一个原因就是安全性问题,Docker对于Linux这一层的安全的隔离还有待改进,才能进一步得到企业的认可。
当服务器运行多个应用程序时,为了防止应用程序之间所需的环境依赖产生冲突或误操作影响,所以需要做好隔离,最大限度利用服务器资源环境,docker就把它变成了一个个沙盒。沙盒与沙盒之间互不影响
这是一个容器,为了防止一个项目的程序运行异常影响其他项目程序的正常运行,可以理解为隔离不同项目的程序,简单来说类似于一个虚拟的盒子或系统,里面运行独立的项目程序,共享系统底层资源。
docker跟项目有什么关系,运维玩就行了
关于docker推荐和docker推荐镜像 软路由的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。