• Docker入门简记


    Docker的容器环境实际上是借助类Linux命名空间,将各种系统资源按照容器不同划分了不同的命名空间进行隔离,为各个进程提供独立的运行环境
    关键概念:容器,镜像
    两个概念一起看,镜像好比平常系统中的各个可执行文件exe,每个可执行文件都会通过一个进程运行起来,容器则好比进程。
    镜像有镜像仓库,好比各大应用市场,可通过下载的形式把镜像拉到本地
    知道两个概念则可以使用docker,下面介绍使用中的命令

    镜像相关命令
    镜像拉取
    docker pull [镜像名]
    eg: docker pull jim3me/etcdkeeper

    镜像创建
    docker build -t[镜像名称] [DockerFile文件所在路径]
    创建镜像的目录需要包含DockerFile文件,里面实质包含建立镜像时需要的操作,以类似于脚本的形式描述,次文件内容暂不在本篇范围内,一般网上支持docker运行的源码都会包含这个文件,github的项目尤为显著,一般可以cd到该目录下创建
    cd /home/aa/Document/otherProject/proj1
    docker build -t myimage .

    镜像查看
    docker images

    镜像删除
    docker image rm [镜像名|镜像id]
    -f 加上此参数使得删除关联的卷标

    容器相关命令
    镜像运行(创建新的容器并把镜像丢到容器中运行)
    docker run [镜像名|镜像id]
    run可带命令本身的参数,也可带镜像运行的时候带的参数。命令的参数:
      -I -t 交互模式
      -privileged=true 以root用户的身份去运行,默认该值为false
      -v [hostPath]:[containerPath] 路径或者文件从宿主机映射到容器中。如果hostPath的对象并不存在,则程序会在宿主中创建一个目录。这种操作应该是所谓的“持久化”,实际操作跟软连接和文件系统挂载有关系
      --volumes-form [name|Id] 与指定容器共享卷标,但是并非额能完全共享,镜像只读层的内容则不会共享,仅共享读写层的内容。
      -d 以守护模式运行,这样运行镜像时就不会同时进入镜像
      -p [hostPort]:[containerPort] 端口映射
      --name 容器名称,如不给则会随机生成一个名称
      --net= 网络类型,分4种
        host:与宿主共用网络
        none:无网络环境
        bridge:网桥模式,默认
        container: 语法--net=container:[name|id] 与指定容器公共网络,一旦以这种形式设置,则无法在本容器中开启端口映射,所有映射均要在所属容器中开启。


    容器停止
    docker stop [containerId|containerName]

    容器移除
    docker rm [containerId|containerName]

    容器重启
    docker restart [containerId|containerName]

    容器运行
    docker start [containerId|containerName]

    容器日志
    docker logs [Id|Name] --since="yyyy-MM-ddThh:mm:ss" 年月日时分秒

    容器重命名

    查看所有容器
    docker ps -a

    查看所有运行的容器
    docker ps

    进入容器运行命令
    docker exec [containerId|containerName] [exeName] [exe parameter]
    eg:docker exec prometheus /bin/sh #进入普罗米修斯的容器中打开一个终端,在此命令中加上-it参数则不会因为该容器正在运行而被阻塞sh进程。

    查看容器信息,包括端口映射,挂载,运行命令等
    docker inspect [containerId|name]

    修改容器设置,野蛮方法
    因为基于Linux一切皆文件的定律,容器本身也是文件,容器信息定由文件记录,因此修改对应文件则可修改容器的信息。只要找对信息所放的位置,定能修改成功,
    1.修改前先关闭容器;
    2.打开配置文件,存放在/var/lib/docker/containers/{容器完整id}/
    如果是端口映射hostscofig.json
    最主要的是config.v2.json,此处包含了诸多配置,端口,环境变量,fs挂载
    以修改端口映射为例,需要修改两个地方
    a.hostconfig.json
      “portBindings”:{
        "8080/tcp": //容器
        [{
          “HostIp”:"",
          "HostPort":"8080"//宿主
        }]
      }
    b.config.v2.json
      "ExposedPorts":{"8080/tcp":{}} //这里填的都是容器
    3.重启docker #sudo service docker restart。通过inspece则可看到修改后的结果了

  • 相关阅读:
    Ocelot简易教程(一)之Ocelot是什么
    如何测量并报告ASP.NET Core Web API请求的响应时间
    ASP.NET Core 2.1中基于角色的授权
    Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
    Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
    Net Core集成Exceptionless分布式日志功能以及全局异常过滤
    CentOS7 PostgreSQL安装
    Python 的 List 要印出 中文 編碼
    如何让你的Python代码更加pythonic ?
    4种格式化字符串方式的时间效率比较
  • 原文地址:https://www.cnblogs.com/HopeGi/p/10301808.html
Copyright © 2020-2023  润新知