美文网首页
Docker常用指令

Docker常用指令

作者: 上山走18398 | 来源:发表于2019-07-09 07:16 被阅读0次

    docker 常用指令

    从开始使用docker到深入使用docker

    1. 查看docker版本
    docker version --返回docker版本信息
    
    2. 查看docker的运行的详细信息
    docker info -- docker一些状态、模式、端口信息
    --container 
    
    --images
    
    --storage driver
    
    --root directory
    
    --execution driver
    
    --debug status
    
    --proxy port
    
    -- 。。。
    
    
    3. 如何跑docker run command
    docker run [-it/p] image //run image as a container
    sudo docker run -p 8080:8080 -p 50000:50000 jenkins
    -p ip:hostport:containerport 127.0.0.1:80:8080 --
    
    -d 在后台运行 --
    
    -i 交互模式运行 --
    
    --name 指定容器名称  -
    
    --env-file=[] 从指定文件读入环境变量-
    
    -v 
    
    执行命令后,会下载hello-world image
    
    --p参数,指定端口号,容器之间的通信
    --如果已经存在这个container
    --如果本地没有,就去仓库hub里下
    
    
    
    4. 从仓库里拉取image镜像
    docker pull [image]
    5. 查看docker 镜像信息
    docker images
    tag -
    image ID
    Created
    Virtual Size
    
    6. 移除docker images
    docker rmi ImageID
    7. 返回imagesID only
    docker images -q
    8. 查看image或者container的detail
    docker inspect Repository(image name)
    9. container是image的实例
    10. 查看有哪些containers
    docker ps [-a] //返回当前运行的containers
    -a 返回系统上的containers
    
    11. 查看指定镜像的创建历史
    docker history ImageID
    12. 查看Container的top信息
    docker top ContainerID
    13. 停止运行container
    docker stop ContainerID
    14. 删除一个container
    docker rm ContainerID
    15. docker stats ContainerID
    16. docker attach ContainerID
    17. 暂停一个container
    docker pause ContainerID
    18. docker unpause ContainerID
    19. 干掉一个container
    docker kill containerID
    20. container的生命周期
    created run kill pause stop
    
    21. container的架构
    22. docker的配置
    service docker stop
    service docker start
    23. containers and shells
    docker run -it centos /bin/bash
    24. docker File
    DockerFile创建
    DockerFile中的内容和语法 -

    文件构成

    1. 基础镜像信息
    2. 维护者信息
    3. 镜像操作指令
    4. 容器启动时执行指令
    5. 为注释内容

    1. # - 注释的用法
    2. FROM <image>- 开头关键字,从这开始,从哪个iamge中拿东西
    3. MAINTAINER - 告诉docker谁将维护这个
    4. RUN - image运行哪些指令,针对image

    4.1 RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。

    4.2 如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache

    6. ADD - 将本地文件添加到容器中,可以访问网络(wget),也会自动解压文件
    7. COPY - 类似ADD,不会解压也不能访问网络
    8. CMD - 容器启动时,系统运行指令
    9. EXPOSE - expose port in the container to the Docker host
    10. ENTRYPOINT - 配置容器接收参数,使其可执行
    11. LABEL - 为镜像添加元数据
    12. VOLUME - 指定持久化目录
    13. WORKDIR -工作目录,类似cd命令
    14. ONBULILD - 设置镜像触发器
    15. ENV - 设置环境变量

    博客:https://www.cnblogs.com/panwenbin-logs/p/8007348.html

    docker的构建
    1. docker bulid -t ImageName:TagName dir

    dir Docker File的目录

    25. 管理docker端口

    hostport containerport

    26. 部署web server dockerfile
    1. 创建DockerFile
    2. build

    docker build -t="mywebserver"

    1. run

    docker run -d -p 80:80 mywebserver

    27. 一些常用主机命令
    CMD command param1 # CMD["echo","hello world"]
    ENTRYPOINT command param1 #ENTRYPOINT ["echo"] 可以从CLI接受参数
    ENV key value # ENV var1=Tutorial var2=point 设置环境变量
    28. 设置container的工作路径
    WORKDIR dirname #设置工作目录
    29. ??多个containers之间如何通信??

    Container Linking better option than exposing ports

    docker run --link=...

    30. Data Volumes
    1. 当container创建时初始化
    2. 能够共享,以及重用在许多container之间
    3. container删除了,他还在
    4. 任何改变,直接体现

    run的时候 指定 -v map the volume in the container to a local volume

    sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins 
    
    will see all the container files in /home/demo
    
    31. 创建Volume
    docker volume create --name=volumename -opt options
    32. 查看volume list
    docker volume ls
    33. container之间通信,container和Docker host之间通信
    docker network ls
    docker network inspect networkname
    34. 多个containers为一个service服务

    Docker Compose

    an application which required NGINX and MYSQL

    下载docker-compsoe

    docker-compose version
    docker-compose.yml
    keywords:
    ./docker-compose up #run docker-compose
    Kubernetes

    管理services - service由多个containers组成

    35. docker的端口映射怎么搞

    在容器启动时,不指定端口映射,在容器外部无法通过网络来访问容器内的应用和服务

    run的时候-p -P参数来指定

    -p指定要映射的端口,一个指定端口上只可以绑定一个容器
    -P将容器内部开放的网络端口随机映射到宿主机的一个端口上
    --link 使多个container互联,而不暴露端口
    
    docker run --name webapp --link mysql:db -it -d ubuntu /bin/sh

    端口映射支持的格式

    1. ip:hostport:containerport #指定ip、指定宿主机port、指定容器port

    2. ip::containerport www.365soke.cn #指定ip、未指定宿主机port(随机)、指定容器port

    3. hostport:containerport #未指定ip、指定宿主机port、指定容器port

    docker port --help
    Docker的文件系统是如何工作的
    1. Docker镜像是由多个文件系统(只读层)叠加而成

    2. 当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(译者注:镜像栈顶部)添加一个读写层

    3. 为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念

    4. 容器的数据被保存在容器之内,它只在容器的生命周期内存在,会随着容器的被删除而被删除。当然,也可以使用 docker commit 命令将它持久化为一个新的镜像。

      1. 它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上
      2. 使用 -v 来挂载主机上的一个文件到容器内的一个文件

    docker底层架构

    https://blog.csdn.net/CleverCode/article/details/83863925
    C/S
    https://www.cnblogs.com/zhangxingeng/p/11236968.html

    相关文章

      网友评论

          本文标题:Docker常用指令

          本文链接:https://www.haomeiwen.com/subject/kkctkctx.html