• Docker 整体流程和常用命令行


    其实简单来说Docker就像是一个打包好的linux 里面只有你得所有项目需要的东西,跟你主机完全隔离。运行起来非常方便。

    基本概念:(常用的三个)

    • 镜像(Image)

    • 一个只读的模板,镜像可以用来创建 Docker 容器

    • 用户基于镜像来运行自己的容器。镜像是基于 Union 文件系统的层式结构

    • 可以简单创建或更新现有镜像,或者直接下载使用其他人的。可以理解为生成容器的『源代码』

     
    • 容器(Container)

    • 容器是从镜像创建的运行实例,在启动的时候创建一层可写层作为最上层(因为镜像是只读的)

    • 可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台

    • 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序

     
    • 仓库(Registry)

    • 集中存放镜像文件的场所,可以是公有的,也可以是私有的

    • 最大的公开仓库是 Docker Hub

    • 国内的公开仓库包括 Docker Pool 等

    • 当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了

    • Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务

     

    docker 常用命令

    docker build 一般在DockerFile目录下 运行build

    docker build -t hello_docker .

    • -t : 镜像的名字及标签,通常 name:tag 或者 name

    • path : .点代表当前路径下的所有文件。

    docker pull **** 下载网上得docker 镜像

    docker images 查看本地仓库得docker 镜像(docker image ls)

    docker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器 -t:分配一个虚拟终端 /bin/bash:执行bash脚本 -d:以守护进程方式运行(后台) -P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口 -p <HOT_PORT>:<CONTAINER_PORT>:指定端口号

    • -name: 指定容 器的名称

    • -rm:退出时删除容器

    docker exec -it bcc-mysql bash 进入指定容器

    ctrl+d 退出容器且关闭, docker ps 查看无

    ctrl+p+q 退出容器但不关闭, docker ps 查看有

    //修改容器内容后 exit 退出容器 然后commit 保存一个新容器

    docker commit -m ‘fun’ aaef9a68525a nginx-fun (示例)

    docker images 查看容器 会发现多了一个容器

    docker ps -|/-a |显示最后启动得容器 -a同时显示停止得容器

    docker stop <CONTAINER_ID>

    docker start <CONTAINER_ID>

    复制容器内的文件到宿主机目录上

    docker cp <CONTAINER_ID>:path hostpath

    删除容器 docker rm [OPTIONS] CONTAINER 选项: – f,–force=false 强行终止并删除一个运行中的容器 – l,–link=false 删除容器连接,但保留容器 – v,–volumes=false 删除容器挂在的数据卷

    容器的导入和导出 导出: [root@izuf64g8sd65ovaejq5rn0z ~]# docker export 8d >nginx.tar [root@izuf64g8sd65ovaejq5rn0z ~]# ls busybox.tar nginx.tar

    docker login 输入账号和密码 登录

    docker tag (imageName) (用户名)/(images):0.0(版本号) 打好tag

    docker push imagesName 推送到自己仓库这个镜像

    docker rmi -f $(docker images -q) 删除单个 后面直接跟Id 强制删除

    docker inspect 来查看 Docker 的底层信息

    安装docker-compose

    sudo curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

    sudo chmod +x /usr/local/bin/docker-compose

    (上一步报错得话)

    【sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose】不报错不需要

    docker-compose –version 查看版本

    docker rm docker ps -a | grep Exited | awk '{print $1}' 删除异常停止的docker容器

    docker rmi -f docker images | grep '<none>' | awk '{print $3}' 删除名称或标签为none的镜像

    docker run -v 目录|文件:目录|文件 *挂载时注意文件得目录和路径 如果找不到得话 他会在你所写的目录新建

     

    Dockerfile 写法

    第一步 From 镜像 可以是本地自己的镜像 也可以是网上的镜像 *注意加上Tag 版本(last 不用管)

    Run 安装 必要的包 和依赖 相当于 在容器内部执行的命令

    COPY 复制文件到 容器内部的目录

    WORKDIR 相当于命令cd 目录

    EXPOSE 暴露端口号

    CMD 执行命令 [‘sh’, ‘xxx.sh’]

    基础就这些 后续在添加

     

    docker load -i xxx.tar 导入镜像包

    docker save -o xxx.tar ImageId 导出镜像存储在当前文件夹下

  • 相关阅读:
    SpringMvc---Ant通配符
    mybatis 数据库语句
    shiro 静态页面资源不显示 解决方案
    http错误汇总
    关于代码质量与逻辑
    shiro 过滤属性的意义
    java思维导图
    E
    LCIS HDU
    E
  • 原文地址:https://www.cnblogs.com/haixiaozh/p/13425778.html
Copyright © 2020-2023  润新知