初始docker


Docker是一种开源的应用容器引擎,允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。通过使用Docker,开发者可以更轻松地创建、部署和运行应用程序,同时确保在不同环境中的一致性和可重复性。

Docker的核心概念是将应用程序与其运行时环境进行隔离。这意味着每个应用程序都在自己的容器中运行,这些容器包含了应用程序的所有依赖项,如库、系统工具和配置文件。这种隔离使得应用程序更易于管理和维护,因为开发人员可以在不干扰其他应用程序的情况下更新和扩展一个应用程序。

Docker提供了一种简单的方法来创建和运行容器。用户可以通过编写一个名为“Dockerfile”的文本文件来定义应用程序的环境和依赖关系。然后,使用Docker命令行工具或图形界面来构建和运行容器。一旦容器被创建,它们可以在任何支持Docker的机器上运行,无论这台机器的操作系统是什么。

Docker的另一个重要特性是其弹性。由于容器在主机之间共享相同的运行时环境,因此可以轻松地在多个服务器或云平台上运行应用程序。此外,Docker还支持自动化部署和管理,使得开发人员可以更快速地迭代和交付新功能。

总之,Docker为软件开发和运维带来了许多好处,包括简化应用程序的部署和管理、提高开发效率、增强应用程序的可移植性和一致性。随着越来越多的企业和开发者采用Docker,它已经成为现代软件开发和云计算领域的重要技术。

docker logo

  

docker与虚拟机的区别是什么

虚拟机:虚拟机是通过Hypervisor(虚拟机管理系统,常见的有VMWare workstation、VirtualBox),虚拟出网卡、cpu、内存等虚拟硬件,再在其上建立虚拟机,每个虚拟机是个独立的操作系统,拥有自己的系统内核。

容器:容器是利用namespace将文件系统、进程、网络、设备等资源进行隔离,利用cgroup对权限、cpu资源进行限制,最终让容器之间互不影响,容器无法影响宿主机。

docker的优势

运行在容器上的docker的程序,直接使用的都是宿主机的硬件资源,因此在cpu、内存、利用率上,Docker将会在效率上具有更大的优势

Docker直接利用宿主机的系统内核,避免了虚拟机启动时所需要的系统引导时间和操作系统运行的资源消耗,利用Docker能够在几秒钟之内启动大量的容器,是虚拟机无法办到的。快速启动低资源消耗的优点,使Docker在弹性云平台自动运维系统方面具有很好的应用场景。

容器的启动时间是秒级的,大量节约开发、测试、部署的时间。还有一个非常关键的点,就是Docker能够高效地部署和扩容,Docker容器几乎可以在任意平台上运行,包括虚拟机、物理机、公有云、私有云、个人电脑、服务器等,这种兼容性,可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。

但是,虚拟机的安全性比容器好一些,docker与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机造成影响。

区别

1、启动速度不同

docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动。

2、性能损耗不同

docker 需要的资源更少,docker 在操作系统级别进行虚拟化,docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化。

3、系统利用率不同

docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高。

4、隔离性不同

与虚拟机相比,docker 隔离性更弱,docker 属于进程之间的隔离,虚拟机可实现系统级别隔离。

5、安全性不同

docker 的安全性也更弱。Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为 root 权限,它就直接具备了宿主机的 root 权限,进而可进行无限制的操作。虚拟机租户 root 权限和宿主机的 root 虚拟机权限是分离的,并且虚拟机利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。

6、可管理性不同

docker 的集中化管理工具还不算成熟。各种虚拟化技术都有成熟的管理工具,例如 VMware vCenter 提供完备的虚拟机管理能力。

7、可用和可恢复性不同

docker 对业务的高可用支持是通过快速重新部署实现的。虚拟化具备负载均衡,高可用,容错,迁移和数据保护等经过生产实践检验的成熟保障机制,VMware 可承诺虚拟机 99.999% 高可用,保证业务连续性。

8、创建、删除速度不同

虚拟化创建是分钟级别的,Docker 容器创建是秒级别的,Docker 的快速迭代性,决定了无论是开发、测试、部署都可以节约大量时间。

9、交付、部署速度不同

虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化;Docker 在 Dockerfile 中记录了容器构建过程,可在集群中实现快速分发和快速部署;

简述  docker:可以想象成虚拟机

        镜像:类似于软件,你在虚拟机安装centos 是一个道理

        仓库 :docker中,仓库是集中存放镜像的地方  (可以理解成软件商城)

docker
docker应用场景

一、安装docker

1.卸载旧版本

ubuntu下自带了docker的库,不需要添加新的源。

但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的

sudo apt-get remove docker docker-engine docker.io containerd runc

docker部署

2.获取软件最新源

sudo apt-get update

3.安装 apt 依赖包

用于通过HTTPS来获取仓库

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

4.安装GPG证书

curl -fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg| sudo apt-key add -

5.验证

sudo apt-key fingerprint 0EBFCD88

6.设置稳定版仓库

sudo add-apt-repository "deb [arch=amd64]https://mirrors.aliyun.com/docker-ce/linux/ubuntu$(lsb_release -cs) stable"

apt install docke-ce docker-ce-cli co0ntainerd.iof

二、安装 Docker Engine-Community

1.更新 apt 包索引

sudo apt-get update

在这里插入图片描述

提示:以下两种安装方式,选择一种即可

.安装最新版本

sudo apt-get install docker-ce docker-ce-cli containerd.io

2.测试

sudo docker run hello-world

5.启动  systemctl start docker

6.停止  systemctl stop docker   

7.重启    systemctl restart docker

8.设置开机启动  sudo systemctl enable docker

四、卸载

1.删除安装包

sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc

2.卸载相关插件

sudo apt-get autoremove docker-ce-*

3. 删除docker的相关配置

sudo rm -rf /etc/systemd/system/docker.service.d

sudo rm -rf /var/lib/docker

docker部署centos镜像

1、安装Docker;

2、运行Docker;

3、下载镜像;

4、启动Docker容器实例;

一、安装Docker

我们使用的服务器环境是CentOs 7。

1、安装环境依赖

yum install -y yum-utils device-mapper-persistent-data lvm2 也可以同时下载你之后要使用的必要依赖(vim,openssh-server,openssh-clients , initscripts ,firewalld ,ntp ,ntpdate,libaio,numactl,net-tools)

2、配置国内 docker 的 yum 源(阿里云)

yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

就这一句话就可以了。查看yum源信息的命令如下。

ls /etc/yum.repos.d/docker-ce.repo

vim !$    查看配置的yum源信息

3、安装 docker-ce

[root@centos7-9~]# yum install docker-ce docker-ce-cli containerd.io -y

docker-ce-cli 作用是 docker 命令行工具包

containerd.io 作用是容器接口相关包

yum info 软件包的名字,可以查看一个包的具体作用。

二、运行Docker

1、启动docker,并且随机启动

systemctl start docker && systemctl enable docker

其实该条命令修改的地方是

cat /proc/sys/net/ipv4/ip_forward

值为1,默认为0,启动docker后,会自动打开 转发功能 ip_forward

2、运行成功后,查看版本号

docker version

3、查看docker的信息

docker info |more

显示docker的运行情况,当前有几个容器,几个在运行,几个paused暂停,几个已停止等,cup,内存等。其中:

Docker Root Dir: /var/lib/docker

docker root dir: docker 的根地址,下载的镜像都默认会存在这个目录下。

registry:https://index.docker.io/v1

默认去这个 https:// index.docker.io/v1/ 网站找 docker 镜像

三、下载镜像到本地

docker search 镜像名

eg:    docker search centos

是否官方提供 OFFICIAL 为[ok] ,说明可以放心使用。

若我们直接pull这些镜像,会很慢,所以,我们需要添加镜像加速器。比如我们一般会使用阿里云的镜像加速器,提升 pull 的速度。

方法如下:

1 、你只需要登录容器 Hub 服务https://cr.console.aliyun.com的控制台,使用你的支付宝帐号,第一次登录时,需要设置一个独立的密码,然后重新打开该网址,左侧的加速器帮助页面就会显示为你独立分配的加速地址。

图片

2、需要手动创建 daemon.json 文件。

vim /etc/docker/daemon.json

写入以下内容

{

"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]

}

镜像源可以添加多个,根据自己的网络环境选择速度快的。这里给大家添加了 3 个常用的。

{

"registry-mirrors":["https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://28usf5ts.mirror.aliyuncs.com"]

}

3、重启服务

[root@centos7-9 ~]# systemctl daemon-reload

[root@centos7-9 ~]# systemctl restart docker

4、查看docker信息

docker info

就可以看到

Registry Mirrors:https://dockerhub.azk8s.cn/http://hub-mirror.c.163.com/http://28usf5ts.mirror.aliyuncs.com/

3.2现在pull下载网上的常用的镜像就可以了。

比如我们下载个centos镜像

docker pull centos (拉取的是最新版centos)

也可以使用docker pull centos:centos7    拉取centos7镜像

下载完毕后,查看下本地的镜像

docker images

就能看到刚刚下载的centos镜像了。

然后可以创建docker 你想要部署的容器了

docker run --name=master -h master --privileged=true    -itd  centos:centos7  /sbin/init

这里的run 只是在创建过程中  没有在运行状态

-itd 后台运行交互式

--name=master  创建以master命名的容器   

-h        主机名        (要跟 命名的容器名保持一致)

----privileged=true      权限

centos:centos7 指定拉取centos7 镜像

重点是这一句 /opt/sbin/init就是给容器一个超级管理员的权限,登入终端是有init负责的。

进入容器(master)

docker exec -it master /bin/bash

如果不指定 /bin/bash,容器运行后会自动停止

2、常用命令

启动、停止、重启 container 容器实例的常用命令,一定要记住

docker images #查看所有的镜像

docker run -d -p 80:80  centos:httpd-v2  #运行、启动一个容器实例;

docker  ps    #查看所有正在运行中的容器;

docker stop 容器id  #关闭容器

docker restart 容器id  #重启容器

docker rm 容器id  删除指定的容器,一般是先stop在删除,或者强制删除 加 -f

docker rm -f 容器id

假如你想要把你创建的容器想删除  1.要停止运行你想要删的容器    docker stop  指定容器的ID名

                                                      2.docker rm  ID

就可以删除这个容器了

docker中你所要使用的所有服务得先下载,开启,才能使用)               

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容