美文网首页
docker常用操作

docker常用操作

作者: 大喵哥哥666 | 来源:发表于2019-08-28 22:34 被阅读0次

    docker解决了什么问题?

    • 包装整个环境
    • 隔离应用
    • 快速扩展、弹性伸缩

    docke核心技术

    • Build
    • Ship
    • Run

    Docker镜像

    • 镜像存储采用linux联合文件(unionfs)分层,每层文件系统都是只读,每层加载完成之后,这些文件看作是同一个目录


      镜像分层.png

    Docker容器

    • 容器的本质就是一个进程,容器最上面那层是可写的,同一个镜像可以生成多个容器,独立运行。

    Docker仓库

    • 使用国内docker镜像仓库地址:
      hub.docker.com
      c.163.com
    • 自己搭建镜像中心

    第一个docker镜像

    docker pull [OPTIONS] NAME[:TAG] --拉取镜像
    docker images [OPTIONS] [REPOSITORY[:TAG]] --查看镜像
    docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...] --运行镜像

    docker运行Nginx

    • 持久运行的容器
    • 前台挂起&后台运行
    • 进入容器内部
      docker pull hub.c.163.com/library/nginx:latest
      docker ps --查看正在运行的容器
      docker run -d hub.c.163.com/library/nginx:latest --后台运行nginx容器
      docker exec [OPTIONS] CONTAINER COMMAND [ARG...] --进入容器内部
      docker exec -it f4 bash --进入容器内部的bash环境

    docker网络

    • 网络类型 --linux的隔离性用namesapce来实现资源的隔离,如:pid namespace、mount namespace、network namespace
    • Bridge(桥接模式,独立的网络环境)
    • Host(和主机使用同一个network namespace)
    • None模式
    • 端口映射:容器上的端口可以在主机上访问到
      docker run -d -p 8081:80 hub.c.163.com/library/nginx --开放指定端口映射
      docker run -d -P hub.c.163.com/library/nginx --开放所有端口映射

    制作自己的镜像

    • Dockerfile:怎么样去制作自己的镜像、制作镜像的操作
    • docker build -t 镜像标签 镜像当前存放目录 --执行Dockerfile里面所描述的每件事情,构建出docker镜像
      Jpress:[http://jpress.io/]
    • Dockerfile内容:
    from hub.c.163.com/library/tomcat
    MAINTAINER xuming xuming@xxx.com
    COPY jpress.war /usr/local/tomcat/webapps
    

    运行自己的镜像

    docker run -d -p 8888:8080 jpress --运行容器
    docker restart CONTAINER ID --重启容器

    docker images往往不知不觉就占满了硬盘空间,为了清理冗余的image,可采用以下方法:

    1. 停止所有的container,这样才能够删除其中的images:
      docker stop $(docker ps -a -q)
    2. 如果想要删除所有container的话再加一个指令:
      docker rm $(docker ps -a -q)
    3. 查看当前有些什么images
      docker images
    4. 删除images,通过image的id来指定删除谁
      docker rmi <image id>
    5. 想要删除untagged images,也就是那些id为<None>的image的话可以用
      docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
    6. 要删除全部image的话
      docker rmi $(docker images -q)
    7. 删除已经退出的容器
      docker rm $(docker container ls -f "status=exited" -q)
    8. 删镜像步骤:
      先停容器,再删容器,最后删镜像

    内容回顾:

    • 集装箱、标准化、隔离
    • 镜像 容器 仓库(Build Ship Run)
    • docker 命令 pull build run stop restart exec

    相关文章

      网友评论

          本文标题:docker常用操作

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