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

    容器信息

    ##查看docker容器版本
    docker version
    
    ##查看docker容器信息
    docker info
    
    ##查看docker容器帮助
    docker --help

    镜像查看

    ##列出本地images(镜像)
    docker images
    
    ##含中间映像层(所有)
    docker images -a

    ##只显示镜像ID
    docker images -q
    
    ##含中间映像层(所有)
    docker images -qa   

    ##显示镜像摘要信息(DIGEST列)
    docker images --digests
    
    ##显示镜像完整信息
    docker images --no-trunc

    ##显示指定镜像的历史创建;参数:-H 镜像大小和日期,默认为true;--no-trunc  显示完整的提交记录;-q  仅列出提交记录ID
    docker history -H redis

    镜像搜索

    ##搜索仓库MySQL镜像
    docker search mysql
    
    ## --filter=stars=600:只显示 starts>=600 的镜像
    docker search --filter=stars=600 mysql
    
    ## --no-trunc 显示镜像完整 DESCRIPTION 描述
    docker search --no-trunc mysql
    
    ## --automated :只列出 AUTOMATED=OK 的镜像
    docker search  --automated mysql

    镜像下载

    ##下载Redis官方最新镜像,相当于:docker pull redis:latest
    docker pull redis
    
    ##下载仓库所有Redis镜像
    docker pull -a redis
    
    ##下载私人仓库镜像
    docker pull bitnami/redis

    镜像导出导入

    #导出镜像到 redis.tar -o是小写字母o
    docker save -o redis.tar redis:latest
    
    #另一种写法
    docker save > redis.tar redis:latest

    这里写图片描述

    #镜像导入
    docker load -i redis.tar
    
    #另一种写法
    docker load < redis.tar
    
    #其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

    这里写图片描述

    镜像删除

    ##单个镜像删除,相当于:docker rmi redis:latest
    docker rmi redis
    
    ##强制删除(针对基于镜像有运行的容器进程)
    docker rmi -f redis
    
    ##多个镜像删除,不同镜像间以空格间隔
    docker rmi -f redis tomcat nginx
    
    ##删除本地全部镜像
    docker rmi -f $(docker images -q)

    ##删除所有 zhy 开头的镜像
    docker rmi $(docker images | grep "zhy*" | awk '{print $1}')

    镜像构建

    编写DockerFile来构建镜像(不要忘记最后那个 .    -t 后面的名称一定要小写 )

    ##构建docker镜像
    docker build -f /home/dockerfile/Dockerfile -t mycentos:1.0 .

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    创建网络

    创建容器通信网络

    #创建 default_network 网络
    docker network create my_network

    网络信息

    查看网络内部信息

    #查看网络信息
    docker network inspect my_network

     

    所有网络

    查看所有的网络

    #查看所有网络
    docker network ls

    删除网络

    删除某个网络

    #删除网络
    docker network rm my_network

    运行容器配置网络

    示例

    #配置网络和IP
    docker run --name redis -p 6379:6379 --net my_network --ip 172.19.0.1 -d redis:5.0

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    容器与宿主机间拷贝文件

    1、从主机往容器中拷贝 
    将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
    
    docker cp /www/runoob 96f7f14e99ab:/www/
    
    2、将容器中文件拷往主机 
    将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
    
    docker cp  96f7f14e99ab:/www /tmp/
    
    3.主机往容器中拷贝并重命名
    将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
    
    docker cp /www/runoob 96f7f14e99ab:/www

    容器基础命令

    ##正在运行的容器
    docker ps
    
    ##所有容器
    docker ps -a
    #查看正在运行+历史运行过的容器
    docker ps -q

    ##显示运行容器总文件大小
    docker ps -s

    ##获取所有容器ID
    docker ps -a -q


    ##显示最近创建容器
    docker ps -l
    
    ##显示最近创建的3个容器
    docker ps -n 3
    
    ##不截断输出
    docker ps --no-trunc 

    ##获取镜像redis的元信息
    docker inspect redis
    
    ##获取正在运行的容器redis的 IP
    docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis

    容器启动

    ##启动镜像生成容器(-p : 端口映射 {服务器端口:Docker端口})
    docker run  -itd --privileged -p 3306:3306 --name="自定义容器name"  76d6bc25b8a5    /usr/sbin/init

    重点: --name 名称尽量小写!不要有任何特殊符号!否则报错
    Unable to find image 'postgres_gis:latest' locally
    docker: Error response from daemon: pull access denied for postgres_gis, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
    ##启动一个或多个容器
    docker start 容器name
    ##重启容器 docker restart 容器name

    容器进程

    ##top支持 ps 命令参数,格式:docker top [OPTIONS] CONTAINER [ps OPTIONS]
    ##列出redis容器中运行进程
    docker top redis
    
    ##查看所有运行容器的进程信息
    for i in  `docker ps |grep Up|awk '{print $1}'`;do echo  &&docker top $i; done

    容器日志

    ##查看redis容器日志,默认参数
    docker logs rabbitmq
    
    ##查看redis容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
    docker logs -f -t --tail=20 redis
    
    ##查看容器redis从2019年05月21日后的最新10条日志。
    docker logs --since="2019-05-21" --tail=10 redis

    容器的进出

    ##使用run方式在创建时进入
    docker run -it centos /bin/bash
    
    ##关闭容器并退出
    exit
    
    ##仅退出容器,不关闭
    快捷键:Ctrl + P + Q
    
    ##直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false  确保CTRL-D或CTRL-C不会关闭容器
    docker attach --sig-proxy=false centos 
    
    ##在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i  即使没有附加也保持STDIN 打开;-t  分配一个伪终端(常用此命令进入容器)
    docker exec -it  centos /bin/bash
    
    ##以交互模式在容器中执行命令,结果返回到当前终端屏幕
    docker exec -it centos ls -l /tmp
    
    ##以分离模式在容器中执行命令,程序后台运行,结果不会反馈到当前终端
    docker exec -d centos  touch cache.txt 

    容器的停止与删除

    ##停止一个运行中的容器
    docker stop redis
    
    ##杀掉一个运行中的容器
    docker kill redis
    
    ##删除一个已停止的容器
    docker rm redis
    
    ##删除一个运行中的容器
    docker rm -f redis
    
    ## -l 移除容器间的网络连接,连接名为 db
    docker rm -l db 
    
    ## -v 删除容器,并删除容器挂载的数据卷
    docker rm -v redis

    容器的批量操作(删除、停止、启动)

    ##删除所有容器
    docker rm -f $(docker ps -a -q)
    
    ##删除所有 zhy 开头的容器 docker rm -f $(docker ps -a | grep "zhy*" | awk '{print $1}')
    ##停止所有容器 docker stop $(docker ps -a -q) ##启动所有容器 docker start $(docker ps -a -q)

    基于容器生成镜像

    ##基于当前redis容器创建一个新的镜像;参数:-a 提交的镜像作者;-c 使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停
    docker commit -a="DeepInThought" -m="my redis" [redis容器ID]  myredis:v1.1

    容器与主机数据拷贝

    ##将rabbitmq容器中的文件copy至本地路径
    docker cp rabbitmq:/[container_path] [local_path]
    
    ##将主机文件copy至rabbitmq容器
    docker cp [local_path] rabbitmq:/[container_path]/
    
    ##将主机文件copy至rabbitmq容器,目录重命名为[container_path](注意与非重命名copy的区别)
    docker cp [local_path] rabbitmq:/[container_path]

    文章转载至:https://www.cnblogs.com/DeepInThought/p/10896790.html

  • 相关阅读:
    Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)
    Java实现蓝桥杯勇者斗恶龙
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 224 基本计算器
    Java实现 LeetCode 224 基本计算器
  • 原文地址:https://www.cnblogs.com/nhdlb/p/12516816.html
Copyright © 2011-2022 走看看