• docker笔记


    什么是docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 App)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

    docker的基本概念

    • 镜像

      是一个只读模板,用来运行Docker容器。

    • 容器

      负责应用程序的运行,包括操作系统、用户添加的文件以及元数据
      容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

    注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

    • 仓库

      仓库是集中存放镜像文件的场所。
      仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

    docker的安装

    我这里使用windows进行安装,直接在官网下载Docker Desktop即可,需要注意的是要开启虚拟化,我这里是华硕的主板,所以使用F2进入bios进行修改,需要修改vdt 和IMV两个地方

    docker的使用

    • 镜像的搜寻

      docker search centos --filter=stars=20 --no-trunc

    • 镜像的获取

      docker pull ubuntu:14.04

    • 显示镜像

      docker images

    • 运行

      docker run -t -i ubuntu:14.04 /bin/bash
      -t 终端
      -i 交互式操作

    • docker其他的命令行操作

      • 查看本机已有的容器

        docker ps -a
      • 退出,但不停止容器

        Ctrl+P+Q
      • 回到Docker下面,停止容器

        docker stop <容器ID>
      • 提交当前容器到镜像

        docker commit <容器ID> <NAME/VERSION>
      • 重新进入一个容器

        #b4ad为容器id
        
        docker exec -ti b4ad /bin/bash
      • docker 导出镜像

        docker export furious_bell > /home/myubuntu-export-1204.tar
      • docker 导入镜像

        docker import /home/myubuntu-export-1204.tar
      • docker 保存镜像

        #9610cfc68e8d 是镜像ID
        
        docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar
      • docker 加载镜像

        docker load < /home/myubuntu-save-1204.tar</span>
    • exprot 和 save 的区别

      • export导出的镜像文件大小 小于 save保存的镜像
      • export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag );而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)
    • 移除所有的容器

    docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)
    • 如果想使用centos镜像,然后开启一个端口用来登录
    docker run -itd -p 50001:22 <刚才提交的镜像ID>  /bin/bash
    #需要在运行的镜像里面开始ssh服务
    /usr/sbin/sshd -D
    #然后就可以通过ssh 访问本机的ip地址来访问docker创建的centos

    docker写docker文件

    通过Dockerfile来创建

    kdir mydockerimg
    
    # docker image的配置文件
    vim Dockerfile
    
    # 创建image
    sudo docker build -t testimg .
    • -t: 指定新的image的名字
    • .: Dockerfile所在目录

    Dockerfile示例

    # 这是注释
    FROM ubuntu:14.04
    MAINTAINER AIR_CC <c989692c@gmail.com>
    RUN apt-get -y update
    CMD echo "hello-world"
    ADD myApp /var/www
    EXPOSE 80
    • #: 注释
    • FROM: 告诉 Docker 使用哪个镜像作为基础
    • MAINTAINER: 维护者的信息
    • RUN: 在创建镜像时运行的操作
    • CMD: 启动容器后运行的程序
    • ADD: 复制本地文件到镜像
    • WORKDIR: 设置 dockerfile 命令运行目录
    • EXPOSE: 对外部开放端口
  • 相关阅读:
    linux查看存储盘
    aix中hd5对应什么设备?
    (转)Python 操作 Windows 粘贴板
    eclipse非主窗口的停靠(正常), 恢复, 最小化, 最大化的切换
    (转)HTML5 本地数据库(SQLite) 示例
    [译] 如何像 Python 高手一样编程?
    scrapy递归下载网站
    eclipse快捷键以及使用技巧大全
    python任意编码转utf8或者unicode
    apache快速配置简易网站
  • 原文地址:https://www.cnblogs.com/raisok/p/11288189.html
Copyright © 2020-2023  润新知