Docker基础:https://blog.csdn.net/huangjhai/article/details/118854733
目录:
    1.镜像
    2.容器
    3.数据持久化
    4.网络
    5.容器脚本
    6.项目脚本

第一关:镜像和容器
    名词:
        镜像:服务样品
        仓库:存放镜像的远程服务器
        容器:实际的服务应用

帮助:https://blog.csdn.net/qq_45637155/article/details/109901965

镜像常用:
        查看:docker images
        搜索:docker search
        下载:docker pull
        删除:docker rmi
    容器常用:
        生成并运行:docker run 镜像名 --name="自定义名" [如果容器什么都不做,容易被自动停掉]
        列出容器:docker ps -a
        删除容器:docker rm 容器id
        操作容器:docker start/restart/stop/kill 容器id
        跳出:Ctrl + p + q
        退出:exit
    容器交互:
        进入:docker exec -it 容器id /bin/bash
        进入:docker attach 容器id
        文件贴出:docker cp 容器id:文件路径 目标路径
    docker相关:
        运行状态:docker stats
        容器信息:docker inspect 容器id
        挂载信息:docker volume ls

联合文件系统:镜像文件分层处理,底层共用。
    自制镜像:底层都是共用的,只读的。自定义的部分都是在顶端一层累加的。
        提交镜像:docker commit -a="" -m="" 容器id 镜像名:版本号
            [将一个修改过的docker容器做成images,存放在本地]
第二关:数据与脚本
    容器数据卷:
        匿名挂载:docker run -v 主机目录:容器目录
            docker run -d -v /html:/usr/share/nginx/html --name nginx01 -p 3335:80 nginx
        具名挂载[推荐]:docker run -v 卷名:容器目录 [区别:是不是/开头]
            卷名地址:/var/lib/docker/volumes/卷名
        跟随别人的卷:相互共享-v信息,并无关系
            --volumes-from 容器名
    DockerFile:构建docker镜像的脚本
        步骤:
            1.编写脚本文件
                dockerfile{
                    FROM 基础镜像名
                    MAINTAINER author<xxx@qq.com>

#自动解压放在某处
                    ADD xxx.tar.gz /path
                    COPY xxx.jar /path/xxx.jar

ENV MYPATH /usr/local
                    WORKDIR $MYPATH
                    VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]

RUN yum -y install vim
                    RUN yum -y install net-tools

EXPOSE 80 443

CMD ["--server.port=8080"]
                    ENTRYPOINT ["java","-jar","/app.jar"]
                }
                照抄脚本:docker history 镜像id
                CMD与ENTRYPOINT:
                    都可以指定shell或exec函数调用的方式执行命令;
                    当存在多个CMD指令或ENTRYPOINT指令时,只有最后一个生效;
                    差异1:CMD指令指定的容器启动时命令可以被docker run指定的命令覆盖,而ENTRYPOINT指令指定的命令不能被覆盖,而是将docker run指定的参数当做ENTRYPOINT指定命令的参数。
                    差异2:CMD指令可以为ENTRYPOINT指令设置默认参数,而且可以被docker run指定的参数覆盖;

2.构建成镜像
                docker build -f dockerfile.path -t images.name:tags 目标路径[通常是个.]
                如果脚本名叫 Dockerfile,官方指定名的话。
                docker build -t images.name:tags .[*重点*]
            3.运行镜像:run
            4.发布镜像:push
    总结:
        docker build 脚本构建镜像
        docker run 运行镜像
        docker start/stop/restart 操作镜像
        docker commit 容器构建镜像
        docker save/load 镜像打包
        docker push/pull 镜像上传
第三关:网络
    docker0:linux下ip addr,有个叫docker0的网卡
        安装docker后,会新增一个docker0的网卡
        每个docker容器运行后,容器内会有个分配的网卡,容器外会同时多出一个对应容器内的新网卡。
        docker0,和容器内虚拟的网卡都分配在同一内网段。
        问题:内网ip是分配的,解决容器内相互调用时ip的问题。
        思路:springcloud中是使用服务名称代替ip的
    容器互联:--link
        docker run -d -P --name tomcat03 --link tomcat02 tomcat
        缺点:反向不通,他的本质是改变了hosts文件[大雾],写死的,重新分配就没了。
    自定义网络:抛弃docker0~!
        查看docker网络:
            docker network ls
        创建一个内网[推荐]:
            docker network create
                --driver bridge
                --subnet 192.168.0.0/16
                --gateway 192.168.0.1 mynet
        使用自创内网:
            docker run -d -P --name tomcat03 --net mynet tomcat
            docker exec -it 容器 ping 容器名
            使用自创内网,可以利用容器名进行通讯。
            多个内网,可以隔离不同集群内网
        内网间通讯:将容器加入某个内网,容器两个ip
            docker network connect [参数] 内网名 容器名
第四关:容器组团
    DockerCompose:编写一次性启动多个容器的yaml文件
    概念:
        services:服务,指容器
    团队成员:
        Dockerfile:原来就有的
        docker-compose:编写的,build当前文件夹里的Dockerfile
        文件:cp过去,或者add过去
    操作:在docker-compose文件上面,执行docker-compose up/down
    Yaml:
        #版本
        version:
        #服务
        services:
            服务1:名
                build
                images
                network
                ...
            服务2:名
        #其他配置
        volumes:
        networks:
        configs:

docker入门精简版相关推荐

  1. Docker(精简版)

    文章目录 Docker初级篇 1. docker是什么 2. docker思想 3. 安装 4. 镜像 4. 镜像进阶 docker **tag指令** 5. 容器 5. 容器进阶 6. 仓库 1. ...

  2. Docker入门实战大全终极版

    Docker入门 学习推荐 哔哩哔哩 狂神说java 本文主要学习大纲 Docker组成 Docker基本操作 Docker安装 卸载Docker 阿里云镜像加速 Docker run 运行流程图 底 ...

  3. Docker超详细版教程通俗易懂 -之- 入门篇

    前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...

  4. 【Docker技术入门与实践(第2版)】Docker入门_学习笔记

    第一章 1 Docker入门须知 1.1 Docker基本知识 Docker是基于Go语言实现的开源容器项目,诞生于2013年年初,最初发 起者是dotCloud公司.Docker自开源后受到广泛的关 ...

  5. Docker入门学习笔记(狂神版)

    下述笔记是自己花一天时间看B站狂神说Docker视频的笔记,下列的笔记是根据自己的实践的记录下来的,若想细学掌握Docker建议自行观看(<Docker入门到精通>),去观看狂胜的视频记得 ...

  6. 【2018版】Docker入门视频课程-汤小洋-专题视频课程

    [2018版]Docker入门视频课程-217人已学习 课程介绍         本课程以通俗易懂的方式讲解Docker容器技术,适合初学者的教程,让你少走弯路! 掌握Docker容器技术,教学全程采 ...

  7. [视频改]Docker技术从0到1全覆盖 docker入门向 文字版

    原视频:https://www.bilibili.com/video/BV16q4y1A74h 作者:智慧少年Xenny 简介:这是一个关于docker使用的教学. 包含 docker基础使用 doc ...

  8. TMF单片机开发框架精简版入门

    前言 无论在面向过程,还是面向对象的开发过程中,都要借助自顶向下模块化思想,按照合适的粒度,把业务需求分解成若干功能单元,然后这些功能单元转化成函数以供调用.当业务比较简单,例如某个按键被按下,我们直 ...

  9. 微软官方XP精简版 FLP入门版SP3截图

    导读:         Windows Fundamentals for Legacy PCs作为官方发布的精简版Windows XP,与XP SP2基于相同的内核.         所以它同样适用于 ...

最新文章

  1. IT人请注意你的身体![转]
  2. java导出excel(easypoi)
  3. SAP QM QM11显示Quality Notification List
  4. 图灵奖公布:高性能计算先驱、为超算铺平道路的Jack Dongarra获奖
  5. mongodb 导出指定数据库文件大小_大数据技术之将mongodb 数据指定字段导出,然后指定字段导入mysql 实例 及相关问题解决...
  6. JavaScript有限状态机实现方式
  7. sql查看数据库线程数_SQL Server始终在可用性组数据库上的最大辅助线程
  8. IIS上部署网站问题总结
  9. 协程asyncio_迭代器,生成器,协程
  10. Python雷电小游戏、战机小游戏源代码源程序
  11. java opts配置_JAVA_OPTS设置参数
  12. 系统设计师之路·第二节·看山是山,看水是水——设计师的三种境界
  13. The Windows account sa does not exist and cannot be provisioned as a SQL Server system administrator
  14. 如何使用注册表在Win10中调整屏幕亮度
  15. 黑客利用WordPress 插件暗中建立后门网站
  16. html5拖放详解,HTML5拖拽/拖放(drag drop)详解
  17. 基于微信小程序的在线商城设计(后台PHP)
  18. [DeploymentService:290066]Error occurred while downloading files from admin server for deployment re
  19. 看完不会的来打我!Mycat和Mysql搭建高可用企业数据库集群
  20. Java扫雷游戏项目-1小时编写出扫雷游戏

热门文章

  1. 无状态密码管理器Heimdallr
  2. 爱情是一个神话,流传于他人,你——并不一定能偶遇。
  3. 用Windows Media Service 9 实现VOD广播和点播系统(上)
  4. 【SpringBoot商城秒杀系统秒杀优化学习笔记】
  5. 百炼智能店店通数据:2020年下半年餐饮行业闭店率超30%
  6. 为何float有效位数只有7位?
  7. c语言 float定义nan,nan - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  8. 【转】一位36岁程序员的困惑
  9. UA OPTI570 量子力学31 氢原子Fine Structure简介
  10. 2019新展望| 掘金年度征文