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

    第一本docker书笔记

    • docker run -i -t ubuntu /bin/bash

      • -i 保证容器中的STDIN是开启的
      • -t 为创建的容器分配一个伪tty终端,新容器从而能提供一个交互式shell
      • docker help run
      • 基于ubuntu镜像来创建容器
      • 在新容器中要运行 /bin/bash 命令
      • --restart=always
      • --restart=on-failure:5 由于某种错误导致容器停止运行后,会自动重新启动该容器最多5次
    • docker stop XXX

    • docker exec -d XXX touch /etc/new_config_file

      • 在容器的内部额外启动新进程:后台任务 或 交互式任务
      • 在XXX容器内部运行一个后台进程,执行的操作是touch
    • docker exec -it XXXX /bin/bash

      • 在XXX容器中启动一个打开shell的交互式任务
    • 本地镜像保存在 /var/lib/docker/containers

    • (基于已有的基础镜像)构建镜像

      • docker commit contiainerID repositoryName/containerName
      • docker build + Dockerfile
        • 执行步骤
          • Docker 从基础镜像运行一个容器
          • 执行一条指令,对容器做出修改
          • 执行类似docker commit的操作,提交一个新的镜像层
          • Docker再基于刚提交的镜像运行一个容器
          • 执行Dockerfile中的下一条指令,直到所有指令都执行完毕
        • RUN
          • 在当前镜像中运行指定的命令,会创建一个新的镜像层,如果指令执行成功,会将此镜像层提交
          • 默认会在shell里使用命令包装器/bin/sh -c来执行
          • 有exec格式的RUN指令

    基础命令

    • 检查容器的主机名

      • hostname
      • cat /etc/hosts
      • ip a
    • 镜像 & 容器

    • 常用命令1

      • docker create
        • 为指定的镜像创建可读可写层,构成了一个新的容器
        • 创建一个容器但不运行它
      • docker start
        • 为容器文件系统创建了一个进程隔离空间
        • 重新启动一个已停止的容器(docker restart 也可以)
      • docker attach
        • 重新附着到容器的会话上
      • docker run
        • 先是利用镜像创建了一个容器,然后运行这个容器
        • docker create和docker start两个命令的组合
      • docker ps
        • 列出所有运行中的容器
      • docker ps -a
        • 列出所有的容器,不管是运行的,还是停止的
      • docker images
        • 列出所有顶层(top-level)镜像
      • docker images -a
        • 列出了所有的镜像,也可以说是列出了所有的可读层
      • docker stop
      • docker kill
      • docker pause
      • docker rm
    • 常用命令2

      • docker info
        • 验证安装正确
      • docker pull
        • docker pull registry.docker-cn.com/library/centos:7
      • docker help
        • 查看所有命令
      • docker search
        • 查找在registry中的镜像
    • 常用命令3

      • 参考Docker退出容器不关闭容器的方法
      • ctrl + p + q 退出登录但不关闭镜像
      • docker attach ID 进入镜像
      • 使用docker start DOCKER-NAME启动容器,docker exec ... 之后做修改,exit退出,再进入容器上次修改还在
    • 常用命令4

      • 启动容器
        • docker run --name DOCKER_NAME -it -v /host_dir:/docker_dir IMAGE_NAME:TAG -p host_port:docker_port /bin/bash IMAGE_NAME顺序在-v之后
        • docker start DOCKER_NAME
        • docker exec -it DOCKER_NAME /bin/bash
      • 退出容器
        • exit
      • 删除容器
        • docker rm
      • 删除镜像
        • docker rmi
      • 编写启动命令
        • alias g2d='docker exec -i -t $(docker ps -l -q) /bin/bash'
        • vi /usr/bin/startDocker
    docker start DOCKER-NAME
    docker exec -it DOCKER-NAME /bin/bash
    

    制作镜像

    Dockerfile示例:

    FROM docker-repository/os
    
    ENV TZ Asia/Shanghai
    ENV LANG en_US.UTF-8
    
    RUN cd /etc/yum.repos.d && curl http://mirrors.163.com/.help/CentOS7-Base-163.repo > CentOS-Base.repo
    
    RUN yum install -y vim wget git make cmake gcc gcc-c++ openssl openssl-devel libwebp-devel libwebp fontconfig.x86_64 fontconfig-devel.x86_64 crontabs.noarch valgrind.x86_64 valgrind-devel.x86_64 gdb net-tools supervisor sshpass
    
    RUN yum install -y java
    ENV JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre"
    
    ADD XXX.tar.gz /usr/local
    ARG PATH
    ENV PATH=${PATH}:/usr/local/XXX/bin
    

    执行脚本示例:

    image="docker-repository/os/service:0.1"
    docker build -t $image .
    

    参考

    Docker入门教程:15个Docker基本命令及用法
    docker的常用命令汇总
    How to analyze disk usage of a Docker container

  • 相关阅读:
    c++STL容器之deque容器
    c++STL容器之vector容器
    c++STL容器之string容器
    c++之STL基本认识
    c++之类模板案例
    c++之类模板和友元
    c++之类模板分文件编写
    c++之类模板成员函数的类外实现
    c++类模板与继承
    c++之类模板对象作函数参数
  • 原文地址:https://www.cnblogs.com/wangzhiyi/p/9427840.html
Copyright © 2011-2022 走看看