Docker介绍

一、Docker出现背景

docker追求的问题/目标是什么?

云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,docker趁势而兴。

环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop...) 费时费力。

二、Docker的历史

2010年,几个搞it的年轻人,就在美国成立了一家公司 dotCloud,做一些 pass 的云计算服务!LXC有关的容器技术。

他们将自己的技术 容器化技术 命名就是Docker!!

因为公司经营不下去,开放源代码

在容器技术开发出来之前,我们都是使用虚拟机技术!

虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑!笨重!

虚拟机也是属于虚拟化技术,Docker容器技术,也是一种虚拟化技术!

Docker 是基于Go语言开发的!开源项目!

Docker的文档是超级详细的

三、docker能干嘛

1、更快速的交付和部署

传统:一堆帮助文档,安装程序

docker:打包镜像发布测试,一键运行。

2、更便捷的升级和扩缩容

使用了Docker之后,我们部署应用就和搭积木一样!

项目打包为一个镜像,扩展 服务器A!服务器B

3、更简单的系统运维

在容器化之后,我们的开发,测试环境都是高度一致的

4、更高效的计算资源利用

Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致。

四、Docker安装

镜像:image

docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像====》run =====>tomcat01(提供服务)

通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

容器:container

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建

启动、停止、删除、基本命令!

目前就可以把这个容器理解为就是一个简单的Linux系统。

仓库:repository

仓库就是存放镜像的地方!

仓库分为公有仓库和私有仓库!

Docker Hub (默认是国外的)

阿里云。。。都有容器服务器(配置镜像加速!)

(购买阿里云)

docker run hello-world

配置阿里云镜像加速:共四步
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json << -'EOF'

{

"registry-mirrors":["https://qiyb9988.mirror.aliyun.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

五、底层原理

Docker是怎么工作的?

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

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

Docker为什么比虚拟机块?

1、Docker有着比虚拟机更少的抽象层

2、Docker利用的是宿主机的内核,vm需要的是Guest OS.

所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加载 Guest OS,分钟级别的,

而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

六、Docker常用命令

1、帮助命令

docker version   显示docker版本信息

docker info     显示docker的系统信息,包括镜像和容器的数量

docker --help   帮助命令

帮助文档命令:https://docs.docker.com/engine/reference/commandline/dockerd/

2、镜像命令

docker images

 解释:

REPOSITORY   镜像的仓库源

TAG       镜像的标签

IMAGE ID      镜像的id

CREATED     镜像的创建时间

SIZE      镜像的大小

 

#可选项 

-a  --all  列出所有镜像

-q  --quiet  只显示镜像的id

docker images

docker search mysql 搜索镜像
# 可选项 通过收藏来过滤
--filter=STARS=3000

docker pull mysql 下载最新的mysql
docker pull mysql:5.7

 docker rmi -f d1165f221234  删除镜像 根据镜像id来删除

3、容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
新建容器,并启动
docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
-d   后台方式运行
-it  使用交互方式运行,进入容器查看内容
-p  指定容器的端口 -p 8080:8080
-p  随机指定端口

docker ps

原文地址:https://www.cnblogs.com/ssqq5200936/p/10859450.html