zoukankan      html  css  js  c++  java
  • Docker初识

    (一)docker介绍

    1.什么是Dokcer?

     1.一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;
     2.go语言编写,在LCX(linux容器)基础上进行的封装

    2.简单来说: 

      1)就是可以快速部署启动应用
       2)实现虚拟化,完整资源隔离
       3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)

    3、为什么要用docker?

    1、提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行               
    2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动
     3、组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用         
    4、更好的资源隔离和共享

                一句话:开箱即用,快速部署,可移植性强,环境隔离

    (二)docker核心知识

    4、Docker仓库、镜像、容器
                Docker 镜像 - Docker images:

    容器运行时的只读模板,操作系统+软件运行环境+用户程序
    好比一个类:

                Docker 容器 - Docker containers:

    容器包含了某个应用运行所需要的全部环境
    好比一个类new出来的对象

                Docker 仓库 - Docker registeries: 

    用来保存镜像,有公有和私有仓库,我们可以从仓库下载我们需要的镜像
    好比Maven的中央仓库和本地私服

    参考)配置国内镜像仓库:https://blog.csdn.net/zzy1078689276/article/details/77371782

    (三)Docker容器常见命令

    云服务器安装文档:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY

            1、 常用命令(安装部署好Dokcer后,执行的命令是docker开头),xxx是镜像名称

    1.搜索镜像:docker search xxx  
      如:rabbitmq:management    
    2.列出当前系统存在的镜像:docker images       
    3.拉取镜像:docker pull xxx
       xxx是具体某个镜像名称(格式 REPOSITORY:TAG)
       REPOSITORY:表示镜像的仓库源,TAG:镜像的标签
      如:rabbitmq:management

    4.运行一个容器:docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management
        docker run - 运行一个容器
        -d 后台运行
        -p 端口映射
        rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
        --name "xxx"      
    5.列举当前运行的容器:docker ps  或者  docker ps -n 5    
    6.检查容器内部信息:docker inspect 容器名称
    7.删除镜像:docker rmi IMAGE_ID
      强制移除镜像不管是否有容器使用该镜像 增加 -f 参数,
      docker rmi -f IMAGE_ID
    8.停止某个容器:docker stop 容器名称(或ID)
    9.启动某个容器:docker start 容器名称(或ID)
    10.移除某个容器: docker rm 容器名称 (容器必须是停止状态)

            文档:

                https://blog.csdn.net/permike/article/details/51879578

    (四)Docker部署Nginx服务器实战

       0、先跑一下
                  docker run  (首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)
       1、查找镜像
                  docker search nignx 
            2、列举
                  docker images 
            3、拉取
                  docker pull nignx 
            3、启动(可以多个)
                  docker run -d --name "xdclass_nginx" -p 8088:80 nginx 
                  docker run -d --name "xdclass_nginx2" -p 8089:80 nginx 
                  docker run -d --name "xdclass_nginx3" -p 8090:80 nginx 
            4、访问
                如果是阿里云服务,记得配置安全组,腾讯云也需要配置,这个就是一个防火墙
            服务器访问端口:
                curl "http://127.0.0.1:端口"
                  curl "http://127.0.0.1:8088" 

    (五)搭建私有镜像仓库

      1.阿里云镜像仓库:https://dev.aliyun.com/search.html

      2、使用阿里云私有镜像仓库
                1)登录:  docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com 
                
                2) 推送本地镜像:
                  docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:[镜像版本号] 
                例子:
                  docker tag 2f415b0e9a6e registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 
                  docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 

                3)拉取镜像
                    线上服务器拉取镜像:
                          docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com 

                          docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 

                        启动容器:
                          docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e 

     注意这些命令都以【管理】里面的命令为主,这里只是演示

    docker:

      安装mysql5.6以及如何访问:https://www.cnblogs.com/areyouready/p/8948552.html

      使用docker发布springboot项目:https://blog.csdn.net/funtaster/article/details/83274727

  • 相关阅读:
    Hadoop集群(三) Hbase搭建
    Hadoop集群(二) HDFS搭建
    Hadoop集群(一) Zookeeper搭建
    Redis Cluster 添加/删除 完整折腾步骤
    Redis Cluster在线迁移
    Hadoop分布式HA的安装部署
    Describe the difference between repeater, bridge and router.
    what is the “handover” and "soft handover" in mobile communication system?
    The main roles of LTE eNodeB.
    The architecture of LTE network.
  • 原文地址:https://www.cnblogs.com/big-cut-cat/p/9932912.html
Copyright © 2011-2022 走看看