zoukankan      html  css  js  c++  java
  • docker 镜像、容器、仓库

    • 镜像

     1.获取镜像

    如果不指定TAG,则下载最新版本,默认选择latest标签
    docker pull ubuntu:18.04
    docker pull ubuntu
    下载非官方镜像
    docker pull hub.c.163.com/public/ubuntu:18.04
    

      

     2.查看镜像

    列出镜像
    docker images 或 docker image ls
    tag添加镜像标签
    docker tag ubuntu:latest myubuntu:latest
    inspect查看详细信息 
    docker inspect ubuntu:18.04
    history查看镜像历史 
    docker history ubuntu:18.04
    
    

     3.搜寻镜像

    docker search [option] keyword
    • -f ,--filter filter:过滤输出内容
    • --format string:格式化输出内容
    • --limit int:限制输入结果个数,默认为25个
    • --no-trunc:不截断输出结果
      搜索带nginx关键词的镜像
      docker search --filter=is-official=true nginx
      搜索收藏数超过4的关键词包括tensorflow镜像
      docker search --filter=stars=4 tensorflow

     4.删除和清理镜像

    使用标签删除镜像
    docker rmi 或 docker image rm
    docker rmi myubuntu:latest
    使用镜像ID删除镜像
    docker rmi id(12位)

    * 当该镜像创建的容器存在时,镜像文件默认是无法删除的,需先删除依赖镜像的所有容器,然后再删除镜像

      ==> 使用 docker ps -a  查看已关联使用的容器,然后使用 docker rm ID 删除容器

    清理镜像
    长时间使用会产生临时文件
    docker image prune -f
    • -a ,-all:删除所有无用镜像,不光是临时镜像
    • -filter filter:只清理符合给定过滤器的镜像
    • -f, -force:强制删除镜像,而不进行提示确认

     5.创建镜像

    基于已有容器创建
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    1) 首先先启动一个镜像
    >> docker run it ubuntu:18.04 /bin/bash
    49d5d4e7b3f6 >> touch test
    49d5d4e7b3f6 >> exit
    记住容器的ID为:49d5d4e7b3f6
    2)创建提交一个新的镜像
    docker commit -m "Added a new file" -a "testdocker" 49d5d4e7b3f6 test:0.1
    • -a , --author="": 作者信息;
    • -c, --change=[]: 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
    • -m, --message="": 提交信息;
    • -p, --pause=true: 提交时暂停容器运行 
    基于Dockerfile创建
    docker build

     6.存出和载入镜像

    存出镜像 - 镜像导出
    docker save
    docker save -o ubuntu_18.04.tar ubuntu:18.04
    载入镜像 - 镜像导入
    docker load
    docker load -i ubuntu_18.04.tar

     7.上传镜像

    push上传至docker hub
    1)先登录,输入注册的用户名和密码
    docker login
    2)然后使用push命令上传,username为你注册的名称
    docker push username/xxxx:xx
    • 容器

     1.创建容器

    新建容器 + 启动
    1)新建容器
    docker create -it ubuntu:latest
    2)启动容器
    docker start xxx
    新建并启动 = 新建+启动
    docker run ubuntu /bin/echo 'Hello world'
    允许用户进行交互
    docker run -it ubuntu:18.04 /bin/bash
    后台运行
    docker run -d ubuntu /bin/sh -c 'while true; do echo hello world; sleep 1; done'
    容器输出
    docker logs ID

     2.停止容器

    暂停容器、恢复暂停
    docker pause test
    docker unpause test
    终止容器、重新启动
    docker stop ID
    docker start ID
    docker restart ID

     3.进入容器

    exec命令
    docker exec -it ID /bin/bash
    • -d,  --detach: 在容器中后台执行命令 ;
    • --detach-key="": 指定将容器切回后台的按键 ;
    • -e,  --env=[]: 指定环境变量列表 ;
    • -i,  --interactive=true|false: 打开标准输入接受用户输入命令,默认值为 false ;
    • --privileged=true|false: 是否给执行命令以高权限,默认值为 false ;
    • -t, --tty=true|false: 分配伪终端,默认值为 false ;
    • -u, --user="": 执行命令的用户名或ID。

     4.删除容器

    rm命令
    docker rm ID
    • -f,  --force=false: 是否强制终止并删除一个运行中的容器 ;
    • -l, --link=false: 删除容器的连接,但保留容器 ;
    • -v,  --volumes=false: 删除容器挂载的数据卷 。

     5.导入和导出容器

    导出 export
    docker export -o XXX.tar ID
    导入 import
    docker import XXX.tar test/ubuntu:v1.0

    * docker load => 镜像存储文件到本地镜像库

      docker import => 容器快照到本地镜像库

      区别:容器快照文件将丢弃所有的历史记录和元数据信息,但可以重新制定标签等元数据信息,而镜像存储文件将保存完整记录,体积更大。

     6.查看容器

    查看容器详细,会以JSON格式返回
    docker container inspect ID
    查看容器内进程
    docker top ID

     7.其他容器命令

    复制文件
    将本地路径 data 复制到 test 容器的 /tmp 路径下:
    docker cp data ID:/tmp/
    查看变更
    docker container diff ID
    查看端口映射
    docker container port ID
    更新配置
    docker update 参数 ID
    • 仓库

     1.搭建本地私有仓库

    使用 registry 镜像创建私有仓库
    docker run -d -p 5000:5000 registry:2




  • 相关阅读:
    完全开源Android网络框架 — 基于JAVA原生的HTTP框架
    博客园—Android客户端
    撸一个Android高性能日历控件,高仿魅族
    Android开发登陆博客园的正确方式
    基于pthread的线程池实现
    重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印
    重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关
    零基础ASP.NET Core WebAPI团队协作开发
    零基础ASP.NET Core MVC插件式开发
    jquery对下拉框的操作
  • 原文地址:https://www.cnblogs.com/peng-lan/p/11115861.html
Copyright © 2011-2022 走看看