设为首页 收藏本站
查看: 1078|回复: 0

[经验分享] Docker使用小结

[复制链接]

尚未签到

发表于 2019-2-21 07:28:06 | 显示全部楼层 |阅读模式
一、配置镜像加速
  Ubuntu 16.04+、Debian 8+、CentOS 7

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"bip": "10.10.100.1/24",
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
之后重新启动服务。
  Windows 10

在系统右下角托盘 Docker 图标内右键菜单选择 Settings ,打开配置窗口后左侧导航菜单选择 Daemon 。
在 Registry mirrors 一栏中填写加速器地址 https://registry.docker-cn.com ,
之后点击 Apply 保存后 Docker 就会重启并应用配置的镜像地址了。
  macOS

在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。
在列表中填写加速器地址 https://registry.docker-cn.com 。
修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。
  检查加速器是否生效

在命令行执行 docker info ,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://registry.docker-cn.com/
二、获取镜像并运行容器
  命令格式为:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
  Docker 镜像仓库地址:地址的格式一般是 [:端口号] 。默认地址是 Docker Hub。
仓库名:这里的仓库名是两段式名称,即 / 。如果不给出用户名,则默认为 library ,也就是官方镜像。
  比如:
$ docker pull ubuntu:16.04
  运行
有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以ubuntu:16.04 为例,如果我们打算启动里面的 bash 并且进行交互式操作的话,可以执行下面的命令。
  $ docker run -it --rm ubuntu:16.04 /bin/bash

docker run 就是运行容器的命令,这里简要的说明上面用到的参数。
-it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。
--rm :这个参数是说容器退出后随之将其删除。
ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。
/bin/bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell
  最后我们通过 exit 退出了这个容器。

三、列出镜像
  要想列出已经下载下来的镜像,可以使用 docker image ls 命令。
列表包含了 仓库名 、 标签 、 镜像 ID 、 创建时间 以及 所占用的空间 。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              735f80812f90        3 weeks ago         83.5MB
B
                            00285df0df87        5 days ago          342 M
B
  镜像体积
你可以通过以下命令来便捷的查看镜像、容器、数据卷所占用的空间。

$ docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              1                   0                   83.49MB             83.49MB (100%)
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B
  虚悬镜像
上面的镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有标签,均
为  。:

                            00285df0df87        5 days ago          342 M
B
  由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为  的镜像。 docker build 也同样可以导致这种现象。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:

$ docker image ls -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
  00285df0df87 5 days ago 342 MB
  一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
$ docker image prune
  中间层镜像
默认的 docker image ls 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数
$ docker image ls -a
  列出部分镜像

#根据仓库名列出镜像
$ docker image ls ubuntu
#列出特定的某个镜像,也就是说指定仓库名和标签
$ docker image ls ubuntu:16.04
#希望看到在mongo:3.2 之后建立的镜像
$ docker image ls -f since=mongo:3.2
#希望看到在mongo:3.2 之前建立的镜像
$ docker image ls -f before=mongo:3.2
#如果镜像构建时定义了 LABEL ,还可以通过 LABEL 来过滤
$ docker image ls -f label=com.example.version=0.1
...
  以特定格式显示

#列出镜像结果,并且只包含镜像ID和仓库名
$ docker image ls --format "{{.ID}}: {{.Repository}}"
735f80812f90: ubuntu
00285df0df87:
#以表格等距显示,并且有标题行,和默认一样,不过自己定义列:
$ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID            REPOSITORY          TAG
735f80812f90        ubuntu              latest
00285df0df87                     
四、删除本地镜像
  如果要删除本地的镜像,可以使用 docker image rm 命令,其格式为:

$ docker image rm [选项]  [ ...]
  比如我们有这么一些镜像:

$ docker image ls
REPOSITORY       TAG           IMAGE ID            CREATED           SIZE
centos           latest        0584b3d2cf6d        3 weeks ago       196.5 MB
redis            alpine        501ad78535f0        3 weeks ago       21.03 MB
  用 ID、镜像名、摘要删除镜像redis

使用 镜像短 ID 、 镜像长 ID 、 镜像名 删除镜像。
$ docker image rm 501
$ docker image rm redis
#当然,更精确的是使用 镜像摘要 删除镜像。
$ docker image ls --digests
$ docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164
422be228
  注:如果观察上面这几个命令的运行输出信息的话,你会注意到删除行为分为两类,一类是Untagged ,另一类是 Deleted 。
当我们删除镜像的时候,首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 Untagged 的信息。因为一个镜像可以对应多个标签,当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,所以并非所有的 docker image rm 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675040-1-1.html 上篇帖子: Marathon+Mesos+Docker实战 下篇帖子: Docker查询,获取,删除镜像
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表