前言
平时使用docker时会经常从docker hub上拉去镜像,但国内访问docker hub会很慢,如果网慢直接没用用。为了解决这个问题,目前国内很多云服务都提供了镜像加速器,常用的有阿里云加速器、DaoCloud加速器、七牛云加速器、网易加速器等。
配置docekr镜像加速器
如果已经安装部署docker,这里以七牛云加速器为例
在 /etc/docker/daemon.json中加入如下内容
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
如果没有新建即可。
加入后重新启动docker并检测是否部署成功
sudo systemctl restart docker -- 重启docekr
docker info --检测是否成功
输出配置的内容则表示成功
docker常用命令
搜索镜像 【docker search】
可以使用docker search [options] term 来搜索需要拉去的镜像。
比如docker search nginx 列出所有包含nginx关键字的镜像。
--automated 默认值false 【只列出自动构建的镜像】--filter, -f 【根据指定条件过滤结果】--limit 默认值25 【搜索结果的最大条数】--no-trunc 默认值false 【不截断输出,显示完整的输出】--stars, -s 默认值0 【只展示Star不低于该数值的结果】
执行搜索命令后会从docker hub中列出镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATEDjava Java is a concurrent, ... 1281 [OK] anapsix/alpine-java Oracle Java 8 (and 7) ... 190 [OK]isuper/java-oracle This repository conta ... 48 [OK]lwieske/java-8 Oracle Java 8 Contain ... 32 [OK]nimmis/java-centos This is docker images ... 23 [OK]...
- NAME:镜像仓库名称。
- DESCRIPTION:镜像仓库描述。
- STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。
- OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由各软件的官方项目组创建和维护。
- AUTOMATED:表示是否是自动构建的镜像仓库。
下载镜像 【docekr pull】
使用 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 从docker hub拉去镜像
--all-tags, -a 默认false 【下载所有标签的镜像】--disable-content-trust 默认值true 【忽略镜像的校验】示例docker pull java 从docker hub拉去最新的java镜像
列出镜像 【docker images】
使用docker images 命令可以列出已经下载的所有镜像。
执行命令后可以看到如下的表格信息
REPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 2622e6cca7eb 4 weeks ago 132MBbusybox latest 78096d0a5478 8 weeks ago 1.22MBdbsource latest 63c9567359ee 2 months ago 727MBsentinel latest 66428e09e885 2 months ago 686MBubuntu latest 1d622ef86b13 2 months ago 73.9MB
- REPOSITORY:镜像所属仓库名称。
- TAG:镜像标签。默认是latest,表示最新。
- IMAGE ID:镜像ID,表示镜像唯一标识。
- CREATED:镜像创建时间。
- SIZE:镜像大小。
docker images [OPTIONS] [REPOSITORY[:TAG]]
--all, -a 默认值false 【列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)】--digests 默认值false 【显示摘要信息】--filter, -f 【显示满足条件的镜像】--format 【通过Go语言模板文件展示镜像】--no-trunc 默认false 【不截断输出,显示完整的镜像信息】--quiet, -q 默认值false 【只显示镜像ID】
删除镜像【docker rmi】
使用docker rmi [OPTIONS] IMAGE [IMAGE...] 删除镜像
--force, -f 默认值false 强制删除--no-prun 默认值false 不移除该镜像的过程镜像 默认移除docker rmi hello-world --删除单个镜像docker rmi -f $(docker images) --删除所有镜像
保存镜像 【docker save】
使用docker save [OPTIONS] IMAGE [IMAGE...]保存镜像
--output, -o 写入文件,而不是STDOUTdocker save --output busybox.tar busybox
加载镜像 【docker load】
使用docker load [OPTIONS]加载镜像
--input, -i 【从文件加载而非STDIN】--quiet, -q 默认值false 【静默加载
构建镜像 【docker build】
使用docker build [OPTIONS] PATH | URL | -构建镜像
--add-host 【添加自定义从host到IP的映射,格式为(host:ip)】--build-arg 【设置构建时的变量】--cache-from 【作为缓存源的镜像】--cgroup-parent 【容器可选的父cgroup】--compress 默认值false 【使用gzip压缩构建上下文】--cpu-period 默认值0 【限制CPU CFS (Completely Fair Scheduler) 周期】--cpu-quota 默认值0 【限制CPU CFS (Completely Fair Scheduler) 配额】--cpu-shares, -c 默认值0 【CPU使用权重(相对权重)】--cpuset-cpus 【指定允许执行的CPU】--cpuset-mems 【指定允许执行的内存】--disable-content-trust 默认值true【忽略校验】--file, -f 【指定Dockerfile的名称,默认是‘PATH/Dockerfile’】--force-rm 默认值false 【删除中间容器】--iidfile 【将镜像ID写到文件中】将镜像ID写到文件中--isolation 【容器隔离技术】--label 【设置镜像使用的元数据】--memory, -m 默认值0 【设置内存限制】--memory-swap 默认值0 【设置Swap的最大值为内存+swap,如果设置为-1表示不限swap】--network 【在构建期间设置RUN指令的网络模式】--no-cache 默认值false 【构建镜像过程中不使用缓存】--pull 默认值false 【总是尝试去更新镜像的新版本】--quiet, -q 默认值false 【静默模式,构建成功后只输出镜像ID】--rm 默认值true 【构建成功后立即删除中间容器】--security-opt 【安全选项】--shm-size 默认值0 【指定/dev/shm 目录的大小】--squash默认值false 【将构建的层压缩成一个新的层】--tag, -t 【设置标签,格式:name:tag,tag可选】--target 【设置构建时的目标构建阶段】--ulimit 【Ulimit 选项】