首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
Docker运行容器前需要本地存在对应的镜像,如果镜像不存在,Docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库。 * 拉取镜像 * 搜索镜像 * 删除镜像 #### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F)拉取镜像 拉取ubuntu指定版本: 格式: docker pull name:tag $ docker pull ubuntu:18.04 不指定版本: 如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。 $ docker pull ubuntu ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#docker-pull%E6%97%B6%E9%82%A3%E4%BA%9Bhash%E4%B8%B2%E6%98%AF%E4%BB%80%E4%B9%88)docker pull时,那些hash串是什么? 镜像文件一般由若干层(layer)组成,6c953ac5d795这样的串是层的唯一id ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#docker-pull%E7%9A%84%E5%AE%8C%E6%95%B4%E5%91%BD%E4%BB%A4)docker pull的完整命令? * docker pull ubuntu:18.04命令相当于docker pull[registry.hub.docker.com/ubuntu:18.04](http://registry.hub.docker.com/ubuntu:18.04) 即从默认的注册服务器Docker Hub Registry中的ubuntu仓库来下载标记为18.04的镜像 * 如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像 $ docker pull hub.c.163.com/public/ubuntu:18.04 ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%85%A8%E5%B1%80%E6%9B%B4%E6%8D%A2docker%E4%BB%93%E5%BA%93%E6%BA%90)全局更换docker仓库源: sudo vim /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] } **关于网络的一些问题:** 1. 虚拟机连接外网不稳定,重启网卡命令: $ sudo /etc/init.d/networking force-reload 2. 拉某些镜像时报错: tcp: lookup[production.cloudflare.docker.com](http://production.cloudflare.docker.com/): Temporary failure in name resolution $ vim /etc/resolv.conf nameserver 8.8.8.8 查看镜像信息: 使用docker images或docker image ls命令可以列出本地主机上已有镜像的基本信息。 $ docker images 在列出信息中,可以看到几个字段信息: * 来自于哪个仓库,比如ubuntu表示ubuntu系列的基础镜像; * 镜像的标签信息,比如18.04、latest表示不同的版本信息。标签只是标记,并不能标识镜像内容; * 镜像的ID(唯一标识镜像),如果两个镜像的ID相同,说明它们实际上指向了同一个镜像,只是具有不同标签名称而已; * 创建时间,说明镜像最后的更新时间; * 镜像大小。 #### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E6%90%9C%E7%B4%A2%E9%95%9C%E5%83%8F)搜索镜像 docker search \[option\] keyword $ docker search centos 一种是类似于centos这样的基础镜像,也称为根镜像。这些镜像是由Docker公司创建、验证、支持、提供,这样的镜像往往使用单个单词作为名字; 另一种类型的镜像,比如ansible/centos7-ansible镜像,是由Docker用户ansible创建并维护的,带有用户名称为前缀,表明是某用户下的某仓库。可以通过用户名称前缀“user\_name/镜像名”来指定使用某个用户提供的镜像 $ docker search nginx 搜索官方提供的带nginx关键字的镜像: $ docker search --filter=is-official=true nginx 搜索所有star数超过100的nginx镜像: $ docker search --filter=stars=100 nginx #### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%88%A0%E9%99%A4%E9%95%9C%E5%83%8F)删除镜像 使用标签删除镜像 使用docker rmi或docker image rm命令可以删除镜像 命令格式: docker rmi IMAGE\[IMAGE...\],其中IMAGE可以为标签或ID。 * 使用标签删除镜像 $ docker rmi ubuntu:list * 使用镜像ID来删除镜像 $ docker rmi 329ed837d508 #### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%88%9B%E5%BB%BA%E9%95%9C%E5%83%8F)创建镜像 1. ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%9F%BA%E4%BA%8E%E5%B7%B2%E6%9C%89%E5%AE%B9%E5%99%A8%E5%88%9B%E5%BB%BA)基于已有容器创建 命令格式为docker \[container\] commit \[OPTIONS\] CONTAINER \[REPOSITORY \[:TAG\]\] 主要选项包括: * \-a, --author="":作者信息; * \-c, --change=\[\]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等; * \-m, --message="":提交消息; * \-p, --pause=true:提交时暂停容器运行。 启动一个镜像,并新建一个test文件 docker run -it ubuntu:18.04 /bin/bash touch test 记住容器的ID为:998f8185b364 提交: docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:\[标签名\] docker commit -m 'add a test file' -a 'liyh' 998f8185b364 myubuntu docker image 查看新创建的镜像 2. ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%9F%BA%E4%BA%8E%E6%9C%AC%E5%9C%B0%E6%A8%A1%E6%9D%BF%E5%AF%BC%E5%85%A5)基于本地模板导入 $ cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04 3. ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%9F%BA%E4%BA%8Edockerfile%E5%88%9B%E5%BB%BA)基于Dockerfile创建 Dockerfile是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。 ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E8%BD%BD%E5%85%A5%E5%92%8C%E5%AF%BC%E5%87%BA%E9%95%9C%E5%83%8F)载入和导出镜像 1. ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E5%AF%BC%E5%87%BA%E9%95%9C%E5%83%8F)导出镜像 $ docker save -o ubuntu_18.04.tar ubuntu:18.04 2. ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E8%BD%BD%E5%85%A5%E9%95%9C%E5%83%8F)载入镜像 $ docker load -i ubuntu_18.04.tar ##### [](https://note.youdao.com/md/?defaultMode=view&fileId=WEBed137f52429011b8c477bb941d21b59b#%E4%B8%8A%E4%BC%A0%E9%95%9C%E5%83%8F)上传镜像 用户在Docker Hub网站注册后可以上传自制的镜像。 例如,用户user上传本地的test:latest镜像,可以先添加新的标签user/test:latest,然后用docker\[image\] push命令上传镜像. 给本地镜像打tag: $ docker tag test:latest user/test:latest push到DockerHub: $ docker push user/test:latest
上一篇:
Docker基础
下一篇:
Docker容器
该分类下的相关小册推荐:
Go开发权威指南(上)
go编程权威指南(四)
深入浅出Go语言核心编程(五)
深入浅出Go语言核心编程(八)
Go开发权威指南(下)
go编程权威指南(一)
Go语言从入门到实战
Go Web编程(中)
Go-Web编程实战
深入浅出Go语言核心编程(六)
深入浅出Go语言核心编程(二)
深入浅出Go语言核心编程(七)