Docker客户端常用命令整理
之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Docker的操作步骤,这里整理下Docker客户端常用命令。
在Windows10家庭版上运行Docker后,通过VMware就不能打开Ubuntu16.04虚拟机了,提示"VMware Workstation与Device/Credential Guard不兼容。在禁用Device/Credential Guard后,可以运行VMware Workstation",原因是Windows10开启Hyper-V后与VMware Workstation冲突导致无法运行和新建虚拟机,可通过以管理员身份打开PowerShell,然后输入命令"bcdedit /set hypervisorlaunchtype off",然后重启,此时VMware可正常运行了,不过在Windows10上的Docker就不能正常启动了,需在PowerShell中输入命令"bcdedit /set hypervisorlaunchtype auto",然后重启,Windows10上的Docker可正常运行。还有一种说法是将VMware更新到较高的版本。
Windows10上启动Docker:双击"Docker Desktop"图标,等待片刻,当鲸鱼图标静止时,Docker启动成功,之后打开PowerShell(Win+x后点击Windows PowerShell)使用Docker。
为了能在Docker Hub上拉取镜像,首先需要在https://hub.docker.com上免费注册一个账号。
每个命令的具体用法都可以通过--help来查看,如查看pull命令的详细用法,执行: $ docker pull --help
docker version # 输出Docker的版本信息
docker info # 显示一些相关的Docker系统信息
docker login # 登录Docker Hub,要求输入用户名和密码
docker logout # 退出Docker Hub
docker search ubuntu # 通过search命令查找Docker Hub中的镜像,如查找ubuntu,search命令并不支持查找TAG版本,可登录Docker Hub,搜索框中搜索ubuntu,然后再在Filter Tags中搜索指定的版本
docker pull ubuntu:16.04 # 从Docker Hub中获取镜像,若不给出用户名,则默认为library,为官方镜像,若拉取自己的镜像,则为docker pull fengbingchun/ubuntu:16.04
docker tag ubuntu:16.04 fengbingchun/ubuntu:v2.0 # 为一个镜像打标签,将其归入指定仓库,如将镜像"ubuntu:16.04"标记为"fengbingchun/ubuntu:v2.0"
docker images # 查看当前系统中已存在的镜像,列表包含了仓库名(REPOSITORY)、标签(TAG)、镜像ID(IMAGE ID)、创建时间(CREATED)、所占用空间(SIZE),此命令只会显示顶层镜像
docker image ls -a # 显示包括中间层镜像在内的所有镜像
docker image ls ubuntu # 根据仓库名列出镜像,如列出仓库名为ubuntu的所有镜像
docker image prune # 删除虚悬镜像(dangling image): 如果新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为<none>的镜像,一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的
docker image rm hello-world # 删除本地镜像,如删除镜像名为hello-world的镜像,除了使用镜像名(仓库名:标签)删除外,还可以使用镜像短ID、镜像长ID或镜像摘要(DIGEST)删除镜像
docker run fengbingchun/ubuntu:16.04 env # 查看指定镜像"fengbingchun/ubuntu:16.04"支持的环境变量
docker save -o ubuntu_v1.0.tar fengbingchun/ubuntu:v1.0 # 保存一个镜像到tar包,"ubuntu_v1.0.tar"为tar包名,"fengbingchun/ubuntu:v1.0"为本地镜像
docker load -i ubuntu_v1.0.tar # 从tar包加载一个镜像
docker push fengbingchun/ubuntu:16.04 # 将自己(用户名为fengbingchun)的镜像推送到Docker Hub
docker history ubuntu:16.04 # 查看镜像内的历史记录,如查看ubuntu:16.04
# 通过Dockerfile构建镜像,-t后面的"fengbingchun/ubuntu:16.04"为新建镜像的名称,最后的".",实际上是在指定上下文的目录,docker build命令会将该目录下的内容打包交给Docker引擎以帮助构建镜像
docker build -t fengbingchun/ubuntu:16.04 .
docker container ls -a # 查看容器的状态
docker container exec -it bcb8 bash # 进入容器,其中"bcb8"为容器ID(ID值能与其它容器ID区分开即可),只有当容器状态为Up时即容器运行时才有效
# 新建并启动一个容器,启动一个bash终端,允许用户进行交互,-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开
docker run -it fengbingchun/ubuntu:16.04 /bin/bash
docker run fengbingchun/ubuntu:16.04 /bin/echo "hello" # 新建一个容器,并输出"hello"之后终止容器
docker container start bcb8 # 将一个已经终止的容器启动运行,其中"bcb8"为容器ID
docker container stop bcb8 # 将一个运行中的容器终止,其中"bcb8"为容器ID
docker export -o ubuntu.tar bcb8 # 导出容器,将导出容器快照到本地tar包,其中"bcb8"为容器ID
docker import ubuntu.tar fengbingchun/ubuntu:v1.1 # 导入tar包容器快照,从容器快照文件中再导入为镜像
docker container rm bcb8 # 删除一个处于终止状态的容器,其中"bcb8"为容器ID
docker container rm -f bcb8 # 删除一个运行中的容器,其中"bcb8"为容器ID
docker container prune # 删除掉所有处于终止状态的容器
docker diff bcb8 # 查看容器的存储层的具体的改动,其中"bcb8"为容器ID
docker commit bcb8 fengbingchun/ubuntu:v1.0 # 在原有镜像的基础上,再加上容器的存储层,并构成新的镜像,其中"bcb8"为容器ID,"fengbingchun/ubuntu:v1.0"为新建镜像的名称
docker inspect fengbingchun/ubuntu:v1.0 # 显示指定镜像的具体配置信息,"fengbingchun/ubuntu:v1.0"为镜像的名称
docker inspect bcb8 # 显示指定容器的具体配置信息,其中"bcb8"为容器ID
docker inspect --format '{{.NetworkSettings.IPAddress}}' bcb8 # 获取指定容器的IP地址,其中"bcb8"为容器ID,只有当容器状态为Up时即容器运行时才有效
docker cp 1.txt bcb8:/home/ # 将主机文件或目录拷贝到容器指定的目录下,其中"bcb8"为容器ID
docker cp bcb8:/home/1.txt . # 将容器指定目录或指定目录下的文件拷贝到主机当前目录下,其中"bcb8"为容器ID
docker logs -f bcb8 # 获取指定容器的日志,其中"bcb8"为容器ID
docker rename yyyy xxxx # 重命名一个容器,其中"yyyy"为原容器名,"xxxx"为新容器名
docker top bcb8 # 查看正在运行中的容器的进程信息,其中"bcb8"为容器ID
docker system df # 查看镜像、容器、数据卷所占用的空间
相关文章:
深度学习入门笔记,三流程序员如何凭借实力逆袭高薪?你不服不行!
最近经常有朋友提及,想要入门深度学习,该如何学习?关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。 我曾经是一名三流程序员,每天的工作内容就是在前人留下的 bug 上写新的bug,我…

Swift编程语言
The Swift Programming Language中文手册1.【精校版】The Swift Programming Language--欢迎使用Swift--关于Swift2.【精校版】The Swift Programming Language-欢迎使用Swift-Swift 初见3.The Swift Programming Language--语言指南--基础部分4.The Swift Programming Languag…

ondblog 修改informix日志模式
-N No Logging 没有日志-U Unbuffered Logging 非缓冲日志-B Buffered Logging 缓冲日志-A Unbuffered Logging, Mode ANSI ANSI模式No Logging 没有日志----“没有日志”模式只向逻辑日志写很少的信息,它只记录执行的DDL语句,这些语句影响到的行并…

iOS RunLoop详解
一、简介 CFRunLoopRef源码RunLoop是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件处理的时候&…

开源库jemalloc简介
jemalloc是通用的malloc(3)实现,它强调避免碎片和可扩展的并发支持。它的源码位于https://github.com/jemalloc/jemalloc,最新稳定版本为5.2.1。 glibc的内存分配算法是基于dlmalloc实现的ptmalloc;tcmalloc是Google开发的内存分配器&#x…
改善深度学习训练的trick总结 | CSDN博文精选
扫码参与CSDN“原力计划”作者 | ZesenChen来源 | CSDN博客精选在深度学习中,同样一个模型用不同的初始化,数据处理,batch size,学习率,优化器都能得到不同性能的参数。我根据自己参与过的比赛中经常用到的一些trick进…

jQuery中的Ajax----03
为什么80%的码农都做不了架构师?>>> $.ajax(0方式是jQuery最底层的Ajax实现。 它的结构为: $.ajax(options) 该方法只有1个参数,但在这个对象里包含了$.ajax()方法所需要的请求设置以及回调函数等信息。参数以key/value的形式存在࿰…

Docker容器中数据两种持久化存储方式:卷和挂载宿主目录
镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。容器存储层的生存周期和容器一样,容器消亡时&a…

CFRunLoopRef 的内部逻辑(向 ibireme学习)
据苹果在文档里的说明,RunLoop 内部的逻辑大致如下:/// 用DefaultMode启动 void CFRunLoopRun(void) {CFRunLoopRunSpecific(CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 1.0e10, false); }/// 用指定的Mode启动,允许设置RunLoop超时时间 int CFRunL…
倒计时 3 天!「2019 嵌入式智能国际大会」全日程大公开!
立即抢购:https://t.csdnimg.cn/otBk还有3天,大伙期待的「2019嵌入式智能国际大会」正式开幕了!2019年12月6日-7日,我们在深圳市人才研修院见!大会以“万物互联泛在智能”为主题,邀请30位海内外顶级专家作为…

Fckeditor PHP/ASP File Upload Vul
目录 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行…

iOS App上架流程(2016详细版),真心很详细。
一、前言:作为一名iOSer,把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。二、准备:一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Company…
飞机的“黑色十分钟”能被人工智能消灭吗?
【导读】近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”。例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照…

Jenkins简介及在Windows上的简单使用示例
Jenkins是一款开源CI(Continuous Integration,持续集成)&CD(Continuous Delivery,持续交付)软件,用于自动化各种任务,包括构建、测试和部署软件,源码在https://github.com/jenkinsci/jenkins ,License为…

IOS开发之数据sqlite使用
一、引入工具包引入工具包libsqlite3.dylib,该工具包为C语言工具包。 二、代码操作数据库1、创建并且链接数据库 - (void) _connectDB{//1>获取沙盒路径作为数据库创建时候的初始化路径NSString * pathNSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDom…

通过Dockerfile构建Docker镜像
Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添加"\"的命令换行方式,以及行首"#"进行注释的格式. 使用Dockerfile构建Docker镜像时注…
华为腾讯百度众安微众360大咖齐聚,2019中国区块链开发者大会首批议程曝光!...
作者 | Aholiab出品 | 区块链大本营(blockchain_camp)随着区块链被定义为国家战略,区块链技术得到升温。据有关国际研究机构预测,三年后全球区块链市场规模将达到139.6亿美元(约合986.23亿元人民币)&#x…

iOS GCD使用
dispatch_queue_t queue dispatch_queue_create("testQueue", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{ // 追加任务1[self.hud show:YES];for (int i 0; i < 2; i) { [NSThread sleepForTimeInterval:2]; // 模拟耗时操作[self reqHopwork];} })…

01 http协议概念及工作流程
一:HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice http协议XML Rest HTTP协议 json 各种API,也一般是用httpXML/json来实现的. 往小说:做采集,小偷站,也需要对HTTP协议有所了解, 以…

iOS原生与html交互 使用第三方WebViewJavascriptBridge
HTML页面代码 <!DOCTYPE html><html xmlns:http"http://www.w3.org/1999/xhtml"><head> <meta charset"utf-8"> <title>迎新好礼</title> <meta name"viewport" content"widthdevice-width,initial…

Docker容器中挂载NFS共享目录
之前在https://blog.csdn.net/fengbingchun/article/details/110561129 介绍过使用Dockerfile构建ubuntu 16.04镜像,并在容器中编译执行Messy_Test项目.这里介绍下如何在容器中挂载NFS服务器上的共享目录. Dockerfile内容如下: FROM ubuntu:16.04 LABEL maintaine…
倒计时1天 | 2019 中国大数据技术大会(BDTC)报名通道即将关闭(附参会提醒)...
2019年12月5-7日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN、中科天玑数据科技股份有限公司协办的中国大数据技术大会(BDTC 2019)将于北京长城饭店隆重举行。届时,超过百位顶尖技术专家将齐聚于…

Android TextView的一些小知识
2019独角兽企业重金招聘Python工程师标准>>> 1.设置文字行距 android:lineSpacingExtra"8dp" 或者 android:lineSpacingMultiplier"1.5" 2.设置字间距 在API21里可以设置 API 21 android:letterSpacing"0.5f" //字间距 注意&#x…

iOS WKWebView带进度条封装(只用传入url,可改变进度条颜色)
1 NSTimeraddition.h #import <Foundation/Foundation.h> interface NSTimer (addition) /** 暂停时间 */ - (void)w_pauseTime; /** 获取内容所在当前时间 */ - (void)w_webPageTime; /** 当前时间 time 秒后的时间 */ - (void)w_webPageTimeWithTimeInterval:(NSTimeIn…

Ubuntu上配置VS Code调试C++
直接使用GDB在Ubuntu上调试C code,有时不是很方便,这里介绍下在Ubuntu上通过Visual Studio Code调试C code操作步骤,通过CMake编译。 安装所需依赖: (1).在Ubuntu上安装Visual Studio Code最新稳定版本1.51.1; (2).…
因果关系是通向强AI的阶梯or作用被夸大?
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)一直以来,机器学习和统计学之间的界限就比较模糊,比如诺奖得主托马斯萨金特就曾经说过人工智能其实就是统计学,只不过用了一个很华丽的辞藻。但同时也有人认为࿰…

Android中设置TextView的颜色setTextColor
tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColor(Color.rgb(255, 255, 255)); //注意Color是大写C,不是color.holo_orange_dark,这样错误并没效果的 tv.setBackgroundResource(R.drawable.icon_bg_rectan…

iOS 跑马灯封装(带点击事件)
1.WAdvertScrollView.h#import <UIKit/UIKit.h>class WAdvertScrollView;typedef enum : NSUInteger {/// 一行文字滚动样式WAdvertScrollViewStyleNormal,/// 二行文字滚动样式WAdvertScrollViewStyleMore, } WAdvertScrollViewStyle;protocol WAdvertScrollViewDelegat…

日期与unix时间戳之间的转换C++实现
之前在https://blog.csdn.net/fengbingchun/article/details/107023645 中介绍过gmtime和localtime的区别,这里介绍下日期与Unix时间戳之间转换的实现,其中也会用到这两个函数。 Unix时间戳(Unix timestamp):是一种时间表示方式,…
模型训练完才是业务的开始?说说模型监控 | CSDN博文精选
扫码参与CSDN“原力计划”作者 | A字头来源 | 数据札记倌(ID:Data_Groom)“模型训练结束后才是业务真正的开始”简述每次模型训练完成后,并不意味着项目的结束,在训练模型后,我们还需要将其稳定上线,然后部署一套相应的监控体系&a…