Docker学习一

0 docker安装

docker仓库 https://hub.docker.com/_/redis

https://docs.docker.com/engine/install/centos/

1、Dockerfile命令

(1)EXPOSE

https://www.jianshu.com/p/5b58218bab9a

(2)CMD

https://yeasy.gitbook.io/docker_practice/image/dockerfile/cmd

https://yeasy.gitbook.io/docker_practice/image/dockerfile/entrypoint

2、编写优美的Dockerfile

https://blog.fundebug.com/2017/05/15/write-excellent-dockerfile/

3、K8S

https://www.kubernetes.org.cn/kubernetes-pod  基本组件介绍

https://kubernetes.io/zh/docs/concepts/configuration/configmap/  挂载配置文件/ 环境变量

https://hustyichi.github.io/2018/07/31/kubernetes-introduction/

 

https://developer.aliyun.com/article/573791

k8s就像一个领航员,把各种集装箱(container)有条不紊地组装起来,着重提供如下功能:

1.快速部署功能:定义对应的charts,可以方便把大型的应用部署上去。

2.智能的缩扩容机制:部署时候会自动去考虑容器应该部署在哪个服务器上,以及副本的数量可以自定义。

3.自愈功能:某个节点的服务崩溃了,可以自动迁移到另外一个服务器节点来恢复来实现高可用。

4.智能的负载均衡:利用Ingress,可以实现流量通过域名访问进来时候,进行流量的分流到不同服务器上。

5.智能的滚动升降级:升级或者降级时候,会逐个替换,当自定义数量的服务升级OK后,才会进行其他的升级以及真正销毁旧的服务。

不过后面还能不支持docker?docker已经不是容器领域的绝对大哥。。。https://zhuanlan.zhihu.com/p/333367514

4、docker 1号进程

https://shareinto.github.io/2019/01/30/docker-init(1)/

docker 是监听1号进程,如果1号进程死亡,则docker死亡。

1号进程就是 

CMD [ "sh", "-c", "service nginx start"]   主进程实际上是 sh
CMD ["nginx", "-g", "daemon off;"]  直接执行 nginx 可执行文件,并且要求以前台形式运行

5、私有仓库

私有仓库是通过前缀和path进行区分。

6、删除镜像

Untagged 和 Deleted

删除行为分为两类,一类是 Untagged,另一类是 Deleted。镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签

因此当我们使用上面命令删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 Untagged 的信息。因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 Delete 行为就不会发生。所以并非所有的 docker image rm 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。

当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变得非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。

除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。

7、加快容器pull速度

https://segmentfault.com/a/1190000023117518

8、docker compose

https://juejin.cn/post/6844904046025768974

compose和K8S一样是用于管理部署多容器。

Docker :

Docker是一种容器技术,可以让您对应用程序进行容器化。Docker是使用其他技术的核心。

Docker Compose:

允许配置和启动多个docker容器。当你想要启动多个docker容器并且不想使用docker run分别启动每个Docker容器时,可以使用Docker compose启动。

Docker Swarm:

Docker swarm用于在多个主机上运行和连接容器。Docker swarm是一个容器集群管理和编排工具。它管理在多个主机上运行的容器,并执行缩放,在崩溃时启动新容器,网络容器……

Docker swarm是生产环境中的docker。它是嵌入在Docker引擎中的本机docker编排工具。名为stack file的docker swarm文件与docker compose文件非常相似。

Kubernetes:

由Google开发的容器编排工具。Kubernetes的目标与Docker swarm的目标非常相似。

Docker Cloud:

一种付费的企业级docker服务,允许您在云服务器或本地服务器上构建和运行容器。它提供了一个Web UI和一个中央控制面板来运行和管理容器,同时在用户友好的Web界面中提供所有docker功能。

9、docker命令

docker cp 复制容器内的文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值