基于Linux中docker简介与部署

  1. docker的作用:docker的主要目标就是“build ship and run any App Anywhere”,也就是、、web应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

Docker的出现解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术

  1. docker与传统虚拟机的不同之处:

传统虚拟机技术是虚拟出一个套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要的应用进程

容器:容器内的应用进程直接运行在宿主机的内核,容器内没有自己的内核并且也没有进行硬件虚拟,因此容器要比传统虚拟机更为便捷

每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

Docker -hub:安装docker镜像的仓库

Docker的基本组成:镜像(images)

                  容器(container)

                  仓库(repository)

Docker镜像(image)

Docker镜像(image)就是个只读的模板,镜像可以用来创建docker容器,(一个镜像可以创建多个容器)

Docker也相当于是一个root文件系统,比如官方镜像centos:7就包含了完整的一套centos:7最小系统的root文件系统。

相当于容器的“源代码”,docker镜像文件类似于java的类模板,而docker容器实例类似于java中new出来的实例对象。

docker容器(container)

1.从面向对象角度

Docker利用容器(container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟机的运行环境,容器是用镜像创建的运行实例。就想java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体,容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动,删除,开始,停止。每个容器都是相互隔离的,保证安全的平台。

2.从镜像容器角度

可以把容器看做是一个简易版的linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

仓库(repository)

仓库(repository)是集中存放镜像文件的场所

类似于

Maven仓库:存放各种jar包的地方

Github仓库:存放各种git项目的地方

Docker公司提供的官方registry被称为docker hub,存放各种镜像模板的地方

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是docker hub(https://hub.docker.com/).

Docker hub存放了数量庞大的镜像提供用户下载,国内的公开仓库包括阿里云,网易云等

总结:正确的理解仓库/镜像/容器

Docker本身是一个容器运行载体或称之为管理引擎,我们把应用程序和配置依赖打包形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件,只有通过这个镜像文件才能生成docker容器实例(类似于java中new出来的一个对象)

Image文件可以看作是容器的模板,docker依据image文件生成容器实例,同一个image文件可以生成多个同时运行的容器实例。

镜像文件:

image文件生成的容器实例,本身也是一个文件,成为镜像文件。

容器实例:

一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。

仓库:

就是存放镜像的地方,我们可以把镜像文件发布到仓库中,需要的时候从仓库拉取过来就可以用了。

Docker的工作原理:

Docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。容器是一个运行时环境实例。

Docker是一个C/S模式的架构,后端一个松耦合架构,众多模块各司其职。

Docker运行的基本流程

1.用户是使用docker client与docker Daemon建立通信,并发送请求给后者

2.docker Daemon作为docker架构中的主体部分,首先提供docker server的功能使其可以接收docker client的请求。

3.docker Engine执行docker内部的一系列工作,每一项工作都是以一个job的形式存在。

4.job的运行过程中,当需要容器镜像时,则从docker registry中下载镜像,并通过镜像管理驱动Graph driver将下载的镜像以Graph的形式存储。

5.当需要为docker创建网络环境时,通过网络管理驱动network driver创建并配置docker容器网络环境

6.当需要限制docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成。

7.Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。

1.安装docker环境

首先查看服务器版本是否为centos7及以上版本

cat /etc/redhat-release

2.yum安装gcc相关软件包

yum -y install gcc

yum -y install gcc-c++

3.安装需要的软件包

yum install -y yum-utils

4.设置stable镜像仓库

这里我们使用我们国内的阿里云,腾讯云,网易云等等。国外的太恶心啦

阿里云网址:yum-config-manager --add-repo http://mirrors.aliyun.com/

docker-ce/linux/centos/docker-ce.repo

5.更新yum软件包索引

yum makecache fast执行这条命令更新一下我们yum下载的索引方便我们以后yum下载更快

6.安装docker-ce

yum install docker-ce

有时候会报错

解决方法

7.启动docker

Systemctl start docker

8.测试

docker run hello-world

查看docker版本

Docker version

完成!!!

阿里云镜像加速器

为了方便我们更加快速拉取镜像,快速发布!

Mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ob47bfrt.mirror.aliyuncs.com"] } EOF

重新启动docker

Systemctl daemon-reload

Systemctl restart docker

docker环境部署完成

Docker常用命令:

1.帮助启动命令:

启动docker:systemctl start docker

停止docker:systemctl stop docker

重启docker:systemctl restart docker

查看docker运行状态:systemctl status docker

开机启动docker:systemctl enable docker

查看docker:概要信息:docker info

查看docker总体帮助文件:docker --help

查看docker命令帮助文件:docker 命令 --help

2.镜像命令

Docker images:查看本地主机镜像

各个选项说明:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

同一仓库源可以有多个TAG版本,代表这个仓库源的不同的版本,我们使用REPOSITORY:TAG来定义不同的版本的镜像。

如果不指定一个叫镜像的版本标签,比如只是用ubuntu,docker将默认ubuntu:latest镜像

Docker search:查找镜像

Docker pull:下载镜像

Docker systemctl df:查看镜像/容器/数据卷所占的空间

Docker rmi:删除镜像  可以加镜像名字/加ID

普通删除加镜像ID

强制删除加 -f 镜像ID

删除单个 docker rmi -f 镜像ID

删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG

删除全部 docker rmi -f $(docker images -qa)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值