Docker学习笔记和安装文档(镜像方式)

一、什么是docker?

1.Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。容器是完全使用沙箱机制,相互之间不会有任何接口;

2.Docker的思想来源于集装箱,集装箱(docker容器)可以放在任何吨位的轮船上(linux系统),轮船也不会在意集装箱里放的是什么东西。

二、使用docker的好处?

1.比如我们安装一个docker的tomcat容器,这个容器不需要考虑系统的环境、版本,也不需要配置JAVA环境,它作为一个独立的容器可以发布在不同的linux系统上(前提是这个linux系统支持docker),和系统内其他软件也不会产生任何影响;

2.docker的安装非常容易,解决了大部分软件在linux系统安装需要安装大量依赖包的问题;

3.容器的复用(实际上是镜像),A机器的tomcat容器里的web项目可以一起打包到B机器发布,不用另外配置任何参数。每一个docker容器的安装、打包、发布都是轻量级的。

三、docker的常用名词解释和概念

1.什么是docker镜像、容器?它们的关系?

我们可以把镜像当做一个docker容器的实体,我们去安装一个docker容器,首先也是安装的镜像。但是我们并不使用镜像,我们使用的是容器,容器是镜像的实例化。每一个容器都会有自己对应的镜像,将镜像‘实例化’后就是我们需要的容器。所以,镜像才是我们需要关心和维护的docker文件,而容器可以随时用镜像实例化,随时抛弃,有问题的容器就删除掉。镜像和容器是一对多的关系,也就是说一个镜像可以实例化成多个容器

2.容器到底是怎样的存在?

容器可以是一个虚拟机,也可以是一个中间件。比如我在最开始安装tomcat容器的时候,是安装了一个centos的容器,我将我们平时使用的tar包上传到这个centos容器内解压发布。但是因为后来在迁移容器的时候,这种虚拟机容器出现了问题没有解决,我才重新安装tomcat的容器,并且在centos容器内安装mysql也会出现缺少文件的问题。而且在linux系统内安装一个centos的容器也没有任何意义,因为centos的容器看起来像是一个轮船,而不是集装箱。所以最后放弃了这种方式,只安装中间件的容器;

3.端口映射

容器和操作系统唯一的连接通道就是端口,比如我们安装一个tomcat容器时映射的是8080端口,那么这台linux服务器的8080端口就被这个tomcat容器占用了,我们访问这台机器的8080端口,也就是访问了tomcat容器;

4.一个容器的配置文件如何修改?

我们平时安装一个tomcat,有可能要改它的端口号或者其他一些参数。目前知道容器修改配置文件的参数有三种方式。第一种是在实例化容器的时候就配置参数,比如tomcat的端口配置;第二种是进入容器内部修改;第三种是将这个配置文件从本机挂载到容器内部,让这个容器启动时就执行这个配置文件,那么我们在本机或者容器内部(其实也是第二种)都可以修改配置文件,比如nginx的nginx.conf文件,我在安装的时候就是用的这种方式。当然这三种参数的配置对于一个容器来说都是可以使用的,我们依容器安装的方便程度来决定;

5.war包如何发布?

当一个容器需要我们从外部上传文件时,比如tomcat需要war包。在实例化容器的时候一定要从本机挂载一个文件夹到容器内部,这样我们的war包拷贝到本机的文件夹就可以,我们再登录容器就可以移动这些文件,当然将本机的文件夹直接挂载到tomcat的webapps文件夹内也是很好的选择,因为容器会自动帮我们解压war包。

四、docker的安装

1.目前依照项目的集群方案搭建了一套docker容器,有tomcat、nginx、redis、mysql、mongdb,其中keepalived不能安装docker容器,原因是它没有端口,并且需要配置防火墙规则,也没有找到相应的解决方案

2.安装docker使用阿里提供的脚本,因为国外的官方脚本因为网络或者墙了的关系无法安装

脚本:curl -sSLhttp://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet |sh

3.docker镜像的拉取也是使用国内官方镜像

执行:docker pullregistry.docker-cn.com/library/tomcat:8.0.54

docker pullregistry.docker-cn.com/library/  :不管拉取什么镜像,前面都是这样写

tomcat: 8.5.4:分号前的tomcat是要拉取tomcat容器;分号后的8.5.4是tomcat的版本

4.镜像的迁移

迁移docker的时候,并不迁移它的镜像,而是将启动的容器生成一个镜像,将这个镜像打包用文件的方式迁移

5.安装步骤

所有容器的安装步骤,问题,方案,都可以参考文档‘docker安装笔记.doc’

6.tomcat的安装和迁移实例(有网络的情况):

a.更新yum仓库。执行:yum upgrade


b.执行阿里docker脚本,安装docker。执行:curl –sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet| sh

c.启动docker服务。执行:service docker start

d.安装tomcat容器

# 拉取tomcat镜像。执行:docker pull registry.docker-cn.com/library/tomcat:8.5.3

# 查看刚刚拉取的镜像:

# 启动tomcat容器。执行:docker run -p 8083:8080 -v /docker/tomcat/webapps:/docker/tomcat/webapps--name tomcat8_1 tomcat:8.5.4

docker run:根据镜像启动容器

-p 8083:8080:将宿主机的8083端口映射到容器里的8080端口

-v /docker/tomcat/webapps:/docker/tomcat/webapps:将本机下的目录挂载到容器内的目录

--name tomcat8_1:容器的名字

tomcat:8.5.4:执行的镜像

# 因为是第一次启动,tomcat进程不是后台运行,CTRL+C停止进程。执行docker ps –a查看所有容器:

#然后根据容器名称/Id启动容器并查看运行的容器:

#然后访问tomcat:http://ip:8083

e.迁移tomcat容器

# 先将需要备份的容器运行起来:docker ps 查看正在运行的容器:

# 创建该容器的快照。执行:docker commit -p 32d91c90fd3e docker-mytomcat-backup

# 查看产生的镜像。执行docker images

# 将镜像打成tar包:docker save -o/docker/tomcat/docker-mytomcat-backup.tardocker-mytomcat-backup

# 将tar包拷贝到另一台机器scp docker-mytomcat-backup.tarroot@192.168.9.20:/docker/tomcat/


# 在新机器上下载镜像:docker load -i /docker/tomcat/docker-mytomcat-backup.tar

# 然后查看镜像是否存在:docker images

# 用镜像启动容器(跟最开始拉取镜像启动容器一样)

# dockerrun -p 8084:8080 -v /docker/tomcat/webapps:/docker/tomcat/webapps

五、docker常用命令

查看docker版本:docker version

服务启动docker:servicedocker start

正在运行的容器:dockerps

所有容器:docker ps -a

查看镜像:dockerimages

所有镜像:docker images-a

Centos版本:lsb_release –a

删除容器:docker rmcontainerid

停止容器:docker stopcontainerid

删除镜像 :docker rmi imageid

先停止容器,先删容器,再删除镜像

查看所有容器ID:docker ps -a -q

停止所有容器:docker stop$(docker ps -a -q)

杀死所有正在运行的容器:docker kill$(docker ps -a -q)

删除所有已经停止的容器:docker rm$(docker ps -a -q)

删除所有镜像:docker rmi $(docker images -q)

删除所有容器:docker  rm $(docker ps -a -q)

容器内添加vi命令:apt-get update  && apt-get install vim

检查容器状态:docker inspect容器ID

登录容器:docker exec

-it 容器名/容器ID /bin/bash

查看linux磁盘大小:df –lh

查看每个目录使用的磁盘大小:du -hx--max-depth=1 / | sort –h

链接容器(进入容器内部操作):docker exec -it 容器名/容器id /bin/bash

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

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,511评论 15 147
  • 1. 简介 Docker整个体系类似于手机系统,应用与主机、应用之间都是相互隔离,采用沙盒模式运行,一键式安装和卸...
    保持微笑_Ivan阅读 813评论 0 0
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,476评论 0 120
  • 第一次因为旅行而去旅行, 北方妹子一枚,对于江南,南方,印象是在苏州,杭州,这是江南,江南女子,折扇,刺绣,竹子伞...
    是军儿呀阅读 830评论 1 1
  • ex35 这个程序应该倒着读,就理解了。要先输入taunt bear,进入分支,然后将bear_moved这个向量...
    ericazhan阅读 1,061评论 4 0