Docker镜像与仓库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker镜像与仓库相关的知识,希望对你有一定的参考价值。
☆ 查看和删除镜像:
Docker镜像的存储位置:/var/lib/docker
[[email protected] ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 3
Server Version: 1.12.6
Storage Driver: devicemapper
PoolName: docker-8:2-33777500-pool
PoolBlocksize: 65.54 kB
BaseDevice Size: 10.74 GB
Backing Filesystem: xfs
Datafile: /dev/loop0
Metadata file: /dev/loop1
DataSpace Used: 302.6 MB
DataSpace Total: 107.4 GB
DataSpace Available: 18.24 GB
Metadata Space Used: 901.1 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
ThinPool Minimum Free Space: 10.74 GB
UdevSync Supported: true
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Dataloop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is stronglydiscouraged for production use. Use `--storage-opt dm.thinpooldev` to specify acustom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.140-RHEL7 (2017-05-03)
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
Volume: local
Network: null bridge overlay host
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Security Options: seccomp selinux
Kernel Version: 3.10.0-693.5.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 976.3 MiB
Name: docker0
ID: PFGR:DFK7:WIOG:MSWF:632I:BPDO:NUNA:WDGS:AQJ3:6PEU:2BCE:UOMI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables isdisabled
WARNING: bridge-nf-call-ip6tables isdisabled
Insecure Registries:
127.0.0.0/8
Registries: docker.io (secure)
[[email protected] ~]#
列出镜像:
dockerimages 选项 仓库
-a:--all,列出所有镜像
-f:--filter,显示时的过滤条件
--no-trunc:指定不使用截断的数据进行显示
-q:--quiet,只显示镜像的唯一ID
查看镜像的详细信息:
dockerinspect 选项 container或images 容器或镜像
-f:--format,格式
删除镜像:
dockerrmi 选项 image镜像
-f:--force,强制删除镜像
--no-prune:不删除未打标签的父镜像
☆ 获取和推送镜像:
通过DockerHub的官方网站进行查找。
dockersearch 选项term
--automated:只显示自动化构建的镜像
--no-trunc:不以截断的方式显示输出
-s:--stars,限定显示结果的最低星级
最多返回25个结果。
拉取镜像:
dockerpull 选项 name或name:标记
-a:--all-tags,下载所哟匹配标记的镜像
--registry-mirror:修改/etc/default/docker,添加DOCKER_OPTS=” --registry-mirror=镜像地址”
注册DaoCloud获取仓库加速器:
[[email protected] ~]# curl -sSLhttps://get.daocloud.io/daotools/set_mirror.sh | sh -s http://a836cbf0.m.daocloud.io
在自动修改的docker的配置文件/etc/docker/daemon.json的时候,启动docker会格式出错,要手动更改为如下格式:
CentOS或RHEL在/etc/sysconfig/docker文件中OPTIONS=添加--registry-mirror=http://a836cbf0.m.daocloud.io
☆ 构建镜像:
1.使用commit通过容器创建镜像:
dockercommit 选项 container仓库或仓库:标记
-a:--author=“”,作者信息
-m:message=“”,提交信息
-p:--pause,创建镜像的时候会将容器暂停
创建一个容器:
更新APT源:
安装软件:
退出容器:
提交镜像:
查看结果:
2.使用Dockerfile构建镜像:
创建Dockerfile文件:
编写Dockerfile文件:
编译Dockerfile文件:
查看镜像:
☆ Dockerfile指令:
Dockerfile中的注释使用#开头
1.指定基础镜像:
FROM 镜像
FROM 镜像:标签
镜像必须存在。
2.指定镜像作者信息:
MAINTAINER姓名
通常包含作者姓名和联系方式。
3.指定镜像中运行的命令:
包好两种模式:
RUN Shell命令
使用/bin/sh -c shell形式执行指令。
RUN [“Shell环境”,”param”,” param”]
指定运行镜像容器的端口:
EXPOSE端口…
5.指定容器运行的默认模式:
CMD[“param”,“param”]作为ENTRPOINT指令的默认参数
CMD命令 param param
CMD[“Shell环境”,“param”,“param”]
ENTRYPOINT[“Shell环境”,“param”,“param”]
ENTRYPOINT命令 paramparam
ENTRYPOINT指令不会被docker run命令覆盖,如果要覆盖run命令需要使用docker run –entrypoint选项。
6.将文件或者是目录复制到Dockerfile构建的镜像:
ADDsrc dest
ADD [“src”…“dest”]适用于文件路径存在空格的情况
COPYsrc dest
COPY[“src”…“dest”] 适用于文件路径存在空格的情况
ADD指令包含tar的解压功能,如果只是单纯复制文件,最好使用COPY命令。
7.添加卷:
VOLUME[“/data”]
这个卷可以绕过联合文件系统来提供数据持久化功能。
8.设置工作目录:
WORKDIR/tmp
9.设置环境变量
ENVkey value
ENVkey=value
10.指定运行身份
USER 用户名
11.为镜像添加触发器:
ONBUILDDockerfile指令
当镜像被使用的时候触发。
☆ Dockerfile构建过程:
从基础镜像运行一个容器,执行一条Dockerfile指令,对容器进行修改,在提交一个新的镜像层,基于刚才构建的镜像,再运行一个容器,对容器进行更改,再次提交镜像,知道Dockerfile指令还行完成。
Docker缓存:Docker在构建镜像的时候还会产生缓存。编译Dockerfile文件的时候可以不使用缓存,docker build–no-cache可以取消使用缓存,这在使用更新apt源的时候尤为有用。
本文出自 “许俊杰” 博客,请务必保留此出处http://xvjunjie.blog.51cto.com/12360960/1982415
以上是关于Docker镜像与仓库的主要内容,如果未能解决你的问题,请参考以下文章
3.Docker技术入门与实战 --- 使用Docker镜像
阿里云搭建docker私有镜像仓库与SpringBoot项目推送远程镜像仓库