zoukankan      html  css  js  c++  java
  • docker常用命令

    添加镜像加速器

    # 在/etc/docker/daemon.json中添加下面内容(如果daemon.json不存在,请新建)
    {
    	"registry-mirrors": [
    		"https://dockerhub.azk8s.cn",
    		"https://reg-mirror.qiniu.com"
    	]
    }
    
    # 重启服务
    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    

    镜像操作

    虚悬镜像

    # 显示虚悬镜像
    docker image ls -f dangling=true
    
    # 清理镜像                                                                                  
    docker image prune
    

    显示镜像

    # 显示顶级镜像
    docker images
    
    # 显示包括中间层镜像在内的所有镜像
    docker images -a
    
    # 根据仓库名列出镜像
    docker images ubuntu
    
    # 列出特定的某个镜像,也就是说指定仓库名和标签
    docker images ubuntu:18.04
    
    # 查看mongo:3.2之后安装的镜像
    docker image ls -f since=mongo:3.2
    
    # 查看mongo:3.2之前安装的镜像
    docker image ls -f before=mongo:3.2
    
    # 通过LABEL过滤镜像
    docker image ls -f label=com.example.version=0.1
    
    # 显示所有镜像的ID
    docke images -aq
    
    # 列出镜像ID和仓库名
    docker images --format "{{.ID}}: {{.Repository}}"
    
    # 表格等距显示,并且有标题行,和默认一样
    docker images --format "table {{.ID}}	{{.Repository}}	{{.Tag}}"
    
    # 显示摘要
    docker images --digests
    

    删除镜像

    # 根据ID删除镜像(docker image rm 不一定都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已)
    docker image rm ID前三个字母
    
    # 根据镜像名删除镜像
    docker image rm centos
    
    # 根据摘要删除镜像
    
    
    # 配合docker images进行镜像删除
    docker image rm $(docker images -q mysql)
    
    

    运行镜像

    • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
    • 利用镜像创建并启动一个容器
    • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
    • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
    • 从地址池配置一个 ip 地址给容器
    • 执行用户指定的应用程序
    • 执行完毕后容器被终止
    # 运行指定镜像, 指定端口并命名 
    docker run --name 容器名 -d -p 本机端口:镜像内部端口 镜像名:Tag
    

    容器操作

    启动容器

    # 输出一个 “Hello World”,之后终止容器。(和本地执行 echo "hello world" 没有区别)
    docker run ubuntu:18.04 /bin/echo 'Hello world'
    
    
    # 运行镜像并启动一个 bash 终端,允许用户进行交互。
    docker run -it ubuntu:18.04 /bin/bash
    
    # 后台运行容器
    docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hel
    lo world; sleep 1; done"
    
    # 启动已停止的容器
    docker start 容器id
    

    停止容器

    docker stop 容器id或名
    

    删除已停止镜像

    docker container prune
    

    获取容器的输出信息

    docker container logs 容器id或名	字
    

    进入正在运行的容器

    docker attach 容器id或名
    
    docker exec -it 容器id或名 bash
    
    attach 和 exec 的区别:
    	attach后执行exit会停止容器的运行
    	exec后执行exit不会停止容器的运行
    

    比较镜像的变动

    docker diff 镜像名
    

    将容器保存成镜像

    docker commit -a "Username <Email>"  -m "说明信息" 容器名 镜像名:tag
    

    导出容器

    docker export 镜像id > xxx.tar
    

    导入容器

    cat ubuntu.tar | docker import - test/ubuntu:v1.0
    
    # 以通过指定 URL 或者某个目录来导入
    docker import http://example.com/exampleimage.tgz example/imagerepo
    

    Dockerfile

    docker build -t "镜像名:Tag" .	# .的作用是指定上下文的目录
    
    

    Docker Hub

    # 登录
    docker login
    
    # 搜索镜像
    docker search xxx
    
    # 拉取镜像
    docker pull xxx
    
    # 打标签
    docker tag ubuntu:18.04 username/ubuntu:18.04
    
    # 推送镜像
    docker push username/ubuntu:18.04
    
    
  • 相关阅读:
    如何把一个用户加入sodu组
    linux bond配置步骤,七种bond模式说明
    python 面向对象(进阶篇)
    lnmp搭建的常见错误
    Linux运维人员如何学习python编程
    运维日常工作知识总结
    《JS原型》
    《读王福朋有感》
    《使用Win32DiskImager安装Ubuntu16.04》
    因为无耻的查重系统,我删除了四篇随笔
  • 原文地址:https://www.cnblogs.com/tmdhhl/p/11111223.html
Copyright © 2011-2022 走看看