ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker学习笔记第一章

2021-04-08 17:29:26  阅读:120  来源: 互联网

标签:容器 仓库 笔记 第一章 镜像文件 镜像 Docker docker


Docker概述

Docker为什么出现?

一款产品,从开发到上线,从操作系统,到运行环境,再到应用配置,作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。

docker之所以发展如此迅速,也是运维它对此给出了一个标准化的解决方案。

软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。

Docker是基于go语言实现的云开源项目。Docker的主要目标是“build,ship and Run any Appanywhere“ 也就是通过应用组件的封装,分发,部署,运行等生命周期管理,时用户的App(可以是一个web应用或者数据库应用等等)及其运行环境能够做到”一次封装,导出运行“。

Docker帮助文档及官网

docker官网:https://www.docker.com/

文档:https://docs.docker.com/ Docker的文档是超级详细的!

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

Docker中的常见概念和名词

镜像(image)

Docker中的镜像就像是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建多个容器。 镜像就相当于java中的类。

容器(container):

Docker利用容器技术,独立运行一个或者一组应用,容器是用镜像创建的运行实例。它可以被启动,开始,停止,删除。每个容器都是相互隔离的,保证安全的平台。
可以把容易看作是一个简易的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

仓库(repository)

仓库是集中存放镜像文件的场所。仓库和仓库注册服务器是有区别的。仓库注册服务器上往往存放着多个仓库。每个仓库中有包含多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(public)和私有仓库(private)两种形式。
最大的公开仓库是DockerHub存放了数量庞大的镜像供用户下载、国内的公开仓库包括阿里云 、网易云 等

小总结

Docker本身是一个容器运行载体或者称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是Image镜像文件。只有通过这个镜像文件才能生存Docker容器。Images文件可以看作是容器的模板,Dokcer根据image文件生成容器的实例,同一个image文件,可以生成多个同时运行的容器实例。

image文件生成的容器实例,本身也是一个文件,成为镜像文件。
一个容器运行一种服务,当我们需要的时候,就可以通过Docker客户端创建一个对应的运行实例,也就是我们的容器
至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下拉就可以了。

此笔记是已经安装了Docker,如果需要安装Docker步骤,请查看博客主页。

Docker HelloWorld

总所周知,我们要学习一个东西,首先是学习Hello,World。所以,Docker也提供了Hello,World~

在这里插入图片描述
运行 Docker run hello-world 命令

回顾hello-world流程

在这里插入图片描述

  1. Docker会在本机寻找是否存在 一个叫 hello-world 的镜像文件
  2. 如果本机存在这个 hello-world镜像文件,那么直接运行该文件。
  3. 如果本机不存在这个 hello-wordl 镜像文件,那么就回去Docker hub 镜像仓库下载
  4. 如果Docker hub 上找不到镜像文件,那么就返回错误信息,否则就运行该文件。

底层原理

Docker是怎么工作的?

Docker是一个client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!

Docker-Server接收到的Docker-Client指令,就会执行这个命令!

在这里插入图片描述

Docker的常用命令

1:帮助命令

docker version #显示docker的版本信息
docker info #显示docker的系统信息,
docker 命令 --help #帮助命令

帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/

2:镜像命令

docker images #查看所有本地主机上的镜像,
docker search #搜索镜像
docker pull #下载镜像
docker rmi #删除镜

1:docker images 查看所有本地镜像

在这里插入图片描述

  • REPOSITORY #镜像的仓库源
  • TAG #镜像的标签(版本)
  • IMAGE ID #镜像的id
  • CREATED # 镜像的创建时间*
  • SIZE # 镜像的大小

可选参数

-a #列出所有的镜像

-q 只显示镜像的id

docker images -a #列出所有镜像
docker images -aq #列出所有镜像的id

2:docker search搜索镜像

语法:
docker search 要搜索的镜像名称

docker search mysql #搜索mysql镜像
#–filter=STARS=3000 #过滤,搜索出来的镜像收藏STARS数量大于3000的
可选参数:
-f, --filter filter #搜索过滤
–limit int #展示多少条

3:docker pull 下载镜像

语法:
docker pull 镜像名[:tag] tag表示版本

[root@iz2zeak7sgj6i7hrb2g862z ~]# docker pull tomcat:8
8: Pulling from library/tomcat #如果不写tag,默认就是latest
90fe46dd8199: Already exists   #分层下载: docker image 的核心 联合文件系统
35a4f1977689: Already exists 
bbc37f14aded: Already exists 
74e27dc593d4: Already exists 
93a01fbfad7f: Already exists 
1478df405869: Pull complete 
64f0dd11682b: Pull complete 
68ff4e050d11: Pull complete 
f576086003cf: Pull complete 
3b72593ce10e: Pull complete 
Digest: sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df # 签名防伪
Status: Downloaded newer image for tomcat:8
docker.io/library/tomcat:8 #真实地址

#等价于
docker pull tomcat:8
docker pull docker.io/library/tomcat:8

4:docker rmi 删除镜像

语法:
docker rmi -f 镜像id 删除指定id的镜像

[root@iZ23i8dldqx9oxZ ~]# docker rmi -f bf756fb1ae65 
Untagged: hello-world:latest
Untagged: hello-world@sha256:4cf9c47f86df71d48364001ede3a4fcd85ae80ce02ebad74156906caff5378bc
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b

== docker rmi -f $(docker images -aq) *#删除全部的镜像==

标签:容器,仓库,笔记,第一章,镜像文件,镜像,Docker,docker
来源: https://blog.csdn.net/RememberQian/article/details/115521555

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有