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

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

作者: 低俗小説 | 来源:发表于2018-12-13 11:30 被阅读0次

    一、什么是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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/tusvhqtx.html