zoukankan      html  css  js  c++  java
  • Docker 学习笔记

    问题:

    1.为什么会有Docker?

    应用程序在不同机器上部署时, 可能会因为环境不一致,导致运行失败。例如:系统不一致,命令脚本不能通用;缺少依赖;环境变量不一致等等。

    针对环境配置难题,我们的解决思路就是带环境安装方案。 有两种实现:虚拟机方案和容器方案。

    Docker作为容器方案对比虚拟机方案启动快、体积小、资源占用少(CPU、网络、磁盘、IO)。

    2.docker多个容器可以共享资源,如何共享?共享哪些资源?为什么100Mb的容器大小,就包含了操作系统和jdk、maven、tomcat和应用程序?

    3.


    笔记:

    1.由于docker的特点,可以实现一次构建,到处运行;随时开关,适合动态扩容、缩容;体积小,可在一台机器模拟微服务部署。

    2.检查是否安装成功

    命令启动docker 服务

    3.image文件  

    # 列出本机的所有 image 文件。
    $ docker image ls
    
    # 删除 image 文件
    $ docker image rm [imageName]

    image文件是二进制文件,image文件是通用的,可以拷贝给别人使用。

    必须基于image创建容器,一个image可以同时创建运行多个容器示例。

    需要基于已有的image修改创建新的image,不要从零开始,可以将自己的image上传到docker hub或者git仓库。

    $ docker image pull library/hello-world  从公共仓库拉取镜像
    $ docker image pull hello-world    从公共仓库拉取镜像
    $ docker image ls                           查看本地镜像
    $ docker container run hello-world  基于镜像,创建容器示例

    4.容器文件

    $ docker container run -it ubuntu bash  run运行一次就会生成一个容器示例
    $ docker container start [containerID] 容器stop后,可以start重新启动
    # 列出本机正在运行的容器 
    $ docker container ls
    # 列出本机所有容器,包括终止运行的容器
    $ docker container ls
    --all
    $ docker container kill [containID] 终止容器运行
    $ docker container rm [containerID] 删除容器文件

    $ bash container stop [containerID] 终止容器运行 和kill类似 会温和一些
    $ docker container exec -it [containerID] /bin/bash 进入容器,然后可以执行shell命令
    $ docker container logs [containerID]  查看日志
    $ docker container cp [containID]:[/path/to/file] . 拷贝容器的文件到本地

    5.制作image文件

    image文件包含应用程序、依赖。所以先下载一个应用程序,再其根目录下创建dockerfile文件,然后使用image创建命令,创建image文件。

    #下载项目
    $ git clone https://github.com/ruanyf/koa-demos.git
    $ cd koa-demos
    
    #项目根目录下创建 .dockerignore文件
    .git
    node_modules
    npm-debug.log
    
    #创建dockerfile文件
    FROM node:8.4
    COPY . /app
    WORKDIR /app
    RUN npm install --registry=https://registry.npm.taobao.org 构建image过程中执行
    EXPOSE 3000
    CMD node demos/01.js  启动容器后会执行此命令
    
    
    #创建完dockerfile 在根目录下运行命令 创建此项目的image镜像
    $ docker image build -t koa-demo .
    # 或者
    $ docker image build -t koa-demo:0.0.1 .
    
    #创建完镜像 运行命令创建启动容器 并运行脚本/bin/bash
    $ docker container run -p 8000:3000 -it koa-demo /bin/bash
    # 或者
    $ docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
    
    也可以将cmd命令放在dockerfile中执行
    

     6.发布镜像到仓库

    需要在仓库注册账号,登录,使用命令推送镜像到仓库

    --------学习 交流 提升-----------
  • 相关阅读:
    Macaca拓展自己控件的方法
    pyparsing:定制自己的解析器
    利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)
    Jenkins插件开发
    一个简陋的高并发请求脚本的演进过程
    python 自定义回调函数
    默认端口
    基本数据类型封装类比较
    grep命令和tail命令
    idea 拉取git新分支
  • 原文地址:https://www.cnblogs.com/blogNYGJ/p/11762161.html
Copyright © 2011-2022 走看看