docker初探

blfbuaa blfbuaa     2022-09-03     675

关键词:

近期虚拟化领域Docker炒的沸沸扬扬,一时间不晓得它究竟是个什么鬼~ 查阅许久。略微明确了点:

1,Docker是一种应用虚拟化技术,它是基于Linux内核提供的LXC技术实现的,而传统的虚拟化技术是基于CPU虚拟化的(当然,还有KVM等应用软件虚拟化,这里不讨论)。

CPU虚拟化是硬件提供的一种功能,在RING0下引入了RING-1。

因此它对于主流OS都是透明的。而Docker是基于Linux内核的LXC技术,这也注定了它上面仅仅能跑Linux的虚拟机,并且跑在上面的虚拟机看到的内核都是宿主的内核。这就是本质差别,详细点:

     1.1 CPU虚拟化下的虚拟机,每个虚拟机全然独立,彼此不受影响。

     1.2 Docker下的虚拟机,基于LXC技术,和宿主机共用一个内核(不信?在虚拟机下和宿主机下执行下uname -a就知道了);虚拟机的一个进程直接映射到宿主机的一个进程(在虚拟机下和宿主机下都ps -a试下吧)。

但每个虚拟机看不到其它虚拟机及宿主机的进程。但宿主机能够看到全部虚拟机的进程,并且和自身进程一一相应。这就是Docker效率高的原因之中的一个。

看透了这点基本上就搞明确Docker是个什么鬼了。可惜我在度娘上折腾了半天,愣是没有一个人说明确的,亏我悟性好~

2,Docker是一种更轻量级的虚拟化技术。但它临时还代替不了CPU虚拟化技术,人家的优势在:

      2.1 虚拟机隔离,安全

      2.2 OS透明,虚拟机的系统能够是linux、windows。啥都行,Docker仅仅支持linux。

不要告诉我windows也支持Docker了。它仅仅是装了linux虚拟机,然后在这个虚拟机上执行docker,再虚拟些docker容器。

包了个壳。扯淡的技术。

3。Docker配套的工具还不是非常成熟。基本上全得命令行干活。我一開始在想:虚拟机的文件存在那?怎么获取客户机IP地址?如何远程获取终端?使用图形界面怎么办(如,安装Oracle)?摸索了一番,基本解决。

以下说说我在Ubuntu 14.04.3 上折腾的经历:

      3.1 安装docker: apt-get install docker.io

      3.2 启动docker服务: service docker.io restart

      3.3 下载镜像:docker pull centos:6

      3.4 启动容器:docker run -i -t centos:6 /bin/bash

            此时会进入bash终端,但不是执行在root用户下,建议马上su。否则有时你会非常纠结。比方后面安装vncserver时~

            假设su报错,多半是内核版本号问题。亲測:3.13.0-62的内核是行的,但3.19.0-26的内部不行

      3.5 安装ssh:yum install openssh-server

                               service sshd restart

      3.6 关闭防火墙:service iptables stop

      3.7 文件存在哪:这个网上说的到挺清晰的,AuFS。主要的镜像文件,加容器改动的内容单独保存的文件,层次结构,就像CAD的图层一样。

。。


      3.8 网络信息:宿主机下ifconfig。可看到docker0虚拟网卡。全部的虚拟机都接在它上面,由他分配ip地址;虚拟机下ifconfig。可看到自己的eth0网卡。假设你须要在其它电脑上訪问虚拟机,则须要添加一条路由规则,将全部訪问docker0子网下的请求都路由到宿主机的eth0地址上。我是改动的路由器,添加了静态路由;也能够改动须要訪问电脑的路由表,仅仅是麻烦些。

      3.9 图形界面咋搞定:这个说实话,比較纠结,资料也少,我悟性这么高的人。也折腾了一上午。总的思路是先安装图形包,然后通过vnc訪问图形界面:

            yum groupinstall "Desktop"

            yum groupinstall "X Window System"

            yum groupinstall "Chinese Support"

            yum install tigervnc-server

            vi /etc/sysconfig/vncservers,添加:

                      VNCSERVERS="1:root"           --指定远程用户

                      VNCSERVERARGS[1]="-geometry 1024x768"      --指定远程桌面分辨率
           vncpasswd (注意,此时一定要在root用户下运行,不放心还是su一下吧,docker容器里who没反应)

           vi ~/.vnc/xstartup,改动:

                     #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &               --将它凝视,加#代表凝视

                     #twm &  --将它凝视

                     gnome-session &  --加入它

          service vncserver restart

          好了,能够通过vncclientIP:1訪问图形界面了。


Docker基本命令參考:http://www.tuicool.com/articles/7V7vYn

CentOS安装VNC參考:http://blog.csdn.net/Matrix_Designer/article/details/7604872、http://blog.itpub.net/666724/viewspace-1058843/

docker进阶-初探docker-compose(代码片段)

什么是Docker-compose??compose翻译成中文的意思是"构成"和"组成"的意思。Docker我之前把他比作一个大轮船,这个轮船上面可以放很多很多的箱子。这个箱子我们可以看做是一个个的容器(container)。那么Docker-compose可以看到是就是把一... 查看详情

docker初探,日积月累

dockersearchnginx搜索外网仓库的镜像dockerpulldocker.io/nginx从外网仓库下载镜像docerimages查看本地服务器镜像列表dockersavedu-sh文件名查看文件大小启动docker容器dockerrun-itddockerio/nginx查看容器dockerps-a查看容器IP地址dockerinspect容器ID|grep-iipa... 查看详情

docker初探(代码片段)

Docker是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全... 查看详情

dockerswarm集群初探(代码片段)

前言相信Docker技术大家都有所了解,单个Docker能发挥的作用毕竟有限,也不便于管理,所以Docker得组集群来使用才能发挥强大的技术优势。既然要组集群那就涉及诸如Docker的资源调度、管理等等一系列问题。目前涉及Docker集群的... 查看详情

jenkins管道部署容器化初探(代码片段)

目标服务器安装docker参考官方文档https://docs.docker.com/install/linux/docker-ce/centos/(可选)在目标服务器上安装docker私服https://docs.docker.com/registry/目标服务器启动jenkinsdocker镜像容器https://hub.docker.com/r/jenkinsci/blueocean/创建d 查看详情

docker的使用初探:常用指令说明(代码片段)

原文:Docker的使用初探(一):常用指令说明目录Docker的使用初探(一):常用指令说明为什么要用DockerDocker的安装与简单使用国内镜像加速常用指令Docker的使用初探(一):常用指令说明前几个星期实践的了,再不记录一下真... 查看详情

docker和k8s的比较(初探)

1、Docker和K8SDocker是一个开源的、轻量级的容器引擎,和VMware虚拟机相比,Docker使用容器承载应用程序,而不使用操作系统,所以它的开销很少,性能很高。但是,Docker对应用程序的隔离不如虚拟机彻底ÿ... 查看详情

[docker][ansible-playbook]3持续集成环境初探

...版本的多样性,编译环境的多样性如何解决?答案是使用docker,将不同的编译环境images统统打包到私有仓库上,根据需求进行下载,从宿主机上挂载volume到dockercontainer上进行编译等操作2.打包编译好的各个模块组件如何部署到不... 查看详情

初探elk-每天5分钟玩转docker容器技术(89)

在开源的日志管理方案中,最出名的莫过于ELK了。ELK是三个软件的合称:Elasticsearch、Logstash、Kibana。Elasticsearch一个近乎实时查询的全文搜索引擎。Elasticsearch的设计目标就是要能够处理和搜索巨量的日志数据。Logstash读取原始日... 查看详情

docker搭建靶场初探(主要对坑点进行总结)

...决方法:将$(lsb_release-cs)换至buster参考链接:deepin_v20安装docker(解决lsb_release-cs返回n/a的问题)解决方法:使用apt-cachemadisoncontainerd.io查询其他版本进行安装参考链接:Docker官方教程节选自InstallDockerEngine部分DockerIP:172.10.0.1/16VmwareIP... 查看详情

docker的使用初探:常用指令说明(代码片段)

目录Docker的使用初探(一):常用指令说明为什么要用DockerDocker的安装与简单使用国内镜像加速常用指令Docker的使用初探(一):常用指令说明前几个星期实践的了,再不记录一下真的就忘干净了Docker即容器技术,具体的介绍已... 查看详情

干货来啦!带你初探docker逃逸

参考技术ADocker是当今使用范围最广的开源容器技术之一,具有高效易用的优点。然而如果使用Docker时采取不当安全策略,则可能导致系统面临安全威胁。本期安仔课堂,ISEC实验室的张老师将为大家介绍不同环境下,Docker逃逸至... 查看详情

基于jenkins+docker+git的ci流程初探(代码片段)

...代码、代码编码、打包镜像、推送到镜像仓库;4.Jenkins在Docker主机创建容器并发布主机环境规划:docker-jenkins:  10.0.0.98docker-git-harbor:10.0.0.991.部署Git代码版本仓库 安装:[[email protected]~]#yuminstallgit-y配置git用户:[... 查看详情

docker目录

编辑本目录一、初探docker  编辑二、容器  编辑三、数据管理 编辑四、网络基础配置 编辑五、使用Dockerfile创建镜像 编辑 查看详情

dockerhub使用初探

DockerHub 使用初探—— 魏刘宏2019.10.26容器的话题越来越热,今天我也来试试容器的使用,我们以DockerHub为例。DockerHub官网为 https://hub.docker.com/ ,主要用于托管容器镜像,我们以Linux系统 centos 为例:&n... 查看详情

docker简单入门(代码片段)

现在主流的容器技术Docker,觉得不学下都跟不上节奏了,这里简单介绍docker的安装以及使用,有问题欢迎指出哈。这里主要讲以下几点:Docker安装Docker镜像创建Docker容器初探制作镜像上传镜像Docker安装首先我们下载一个ubuntu镜像... 查看详情

redis初探redis(代码片段)

...多样的数据类型持久化集群事务Redis安装我直接在vps上用docker安装的用的docker-composeyml文件如下:version:'2.1'services:redis:image:redishostname:rediscontainer_name:wbs_redisenvironment:TZ:Asia/Shanghaicommand:["redis-server","/etc/redis/redis.c... 查看详情

fabric-sdk-go初探(代码片段)

...版兼容。环境安装可参考fabric2.x环境搭建请确保安装好了docker,go,git等环境2 查看详情