zoukankan      html  css  js  c++  java
  • docker安装及使用

    一、简介

         说起docker,大多数人第一时间想起来的应该有虚拟化、云计算,这三者有什么区别呢?

         对比:

    •              我们所熟知的虚拟化有KVM、xen、Hyper-V等,这些虚拟化虚拟出来的服务器会产生一个新的操作系统(包括内核层、用户层等)
    •              云计算跟虚拟化不是一个概念的东西,我们常见的OpenStack云计算技术是基于虚拟化的技术,虚拟出来一个个的虚拟机,然后再管理这些虚拟机
    •              docker也算一个轻量级的虚拟化,只不过它不会产生一个新的新的操作系统,二是产生一个容器,这个容器可以随时停止和重新启动,时间也比虚拟机要
    • 快的多,都是毫秒级的;而且使用容器部署我们的业务服务,可以保证开发、测试、生产环境的高度一致,再也不会担心因为环境的问题导致运行服务失败的问题了。

    二、docker安装

          在这里使用的操作系统是centos7.4的版本,安装的docker版本是18.03.1-ce,首先我们先配置好我们的yum源,创建新文件:/etc/yum.repos.d/docker-ce.repo

          

    [docker-ce-stable]
    name=Docker CE Stable - $basearch
    baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
    
    [docker-ce-stable-debuginfo]
    name=Docker CE Stable - Debuginfo $basearch
    baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
    1.       yum clean all && rm -rf /var/cache/yum             #清除yum缓存
    2.       yum makecache                                              #建立新的缓存
    3.       yum install -y yum-utils  device-mapper-persistent-data  lvm2    #安装依赖包
    4.       yum -y install docker-ce                                  #安装docker
    5.       systemctl start docker && systemctl enable docker  #安装并设置自启动
    6.       systemctl status  docker                                 #查看docker的运行状态
    7.       现在我们可以使用docker -h/--help来查看docker命令的用法了

    三、docker的使用

            在这里我只跟大家介绍我所用到的一些命令的用法,其它的大家可以自行查看,docker  command

            command:

     images或者image ls -a: 查看当前有哪些镜像,这里需要说明的是容器是由镜像创建的,那么我们怎么创建镜像呢?别急,一个一个来

     pull  镜像名:  这样我们就是从GitHub上面拉取别人创建好的镜像,比如我们拉取Java的一个镜像,就是docker pull  Java,基于这个

                             Java镜像,我们可以定制自己的镜像

     search  镜像名:  就会搜索这个所有公共的镜像

     built -t -f Dockerfile文件: 这个命令就是基于一个镜像(比如Java镜像)来创建自己的镜像,Dockerfile文件后面会详细介绍的

     run --name 容器名 -d -p 宿主机端口:容器端口  镜像名:   这个是创建一个容器,-d是以后台进程运行,-p暴露你想暴露的端口

     container ls -a 或者 ps -a:  查看已经存在的容器,从中可以看到容器运行的状态等信息

     rmi  镜像名或者image rm 镜像名:   删除一个镜像

     rm 容器名或者container rm 容器名:  删除一个容器,这里需要注意的是,删除一个运行中的容器是删除不掉的,需要先停止它,使用下面的命令停止

     stop 容器名:  停止一个运行中的容器

    基本的操作就这些,其它的命令还有很多,我就不一一介绍了,后面文章还会涉及到集群,到时候用到那些命令,再详细的介绍

    四、Dockerfile

    上面我们谈到创建自己的镜像的时候,用到了Dockerfile,我们先来看下我写过的一个Dockerfile文件:

    FROM java
    ENV APP_HOME=/opt/byit_jar 
        BYIT_TYPE=byit-test
    
    WORKDIR ${APP_HOME}
    ADD ${BYIT_TYPE}-0.0.1-SNAPSHOT.jar ${APP_HOME}
    
    ENTRYPOINT java -jar ${APP_HOME}/${BYIT_TYPE}-0.0.1-SNAPSHOT.jar

    解释说明:

    FROM java    //这行的意思就是引用我们上面pull下来的那个Java镜像

    ENV              //定义变量

    WOEKDIR    //定义容器工作的目录,就是上面定义的/opt/byit_jar

    ADD             //就是把当前目录下的jar包拷贝到工作目录下面去

    ENTRYPOINT  //运行工作目录下的jar包,记住,不能以后台进程的方式去运行,不然的话,容器起不来

    我们就可以运行docker build -t byit-test .  生成一个byit-test的镜像,我们可以使用这个镜像来生成容器了,执行,

    docker run --name byit-test1 -d -p 8080:8080 byit-test    //为了区分,我把容器的名称写成byit-test1了!

    五、私有仓库

    我们刚刚pull下来的镜像是在共有仓库中存储的,我们如果想把自己创建的镜像放在自己的私有仓库中使用的话,可以自己搭建

    1. 首先我们需要pull下来一个叫做registry的镜像,这里我简单的说下一个镜像是由仓库名和标签组成的,其实标签的话,可以说成版本号
    2. 下载完之后,我们直接运行docker run --name myregistry -d -p 5000:5000 registry 就创建属于自己的私有仓库了
    3. 然后我们如果想把上面的byit-test上传到私有仓库的话,还需要重命名一下,docker tag byit-test localhost:5000/byit-test,标签可以加也可以不加
    4. 下载也是一样的,我们需要指定私有仓库的地址/加名字才可以
  • 相关阅读:
    getline函数
    Java获取某年某月的第一天
    计划任务中使用NT AUTHORITYSYSTEM用户和普通管理员用户有什么差别
    Windows 7系统安装MySQL5.5.21图解
    C#高性能大容量SOCKET并发(十一):编写上传client
    Linux 终端訪问 FTP 及 上传下载 文件
    完毕port(CompletionPort)具体解释
    ping不通的几种可能原因
    Apple Swfit UI控件实现
    js中取session的值
  • 原文地址:https://www.cnblogs.com/madq-py/p/9105550.html
Copyright © 2011-2022 走看看