- 创建
- 查看
- 操作
镜像
理解:静态代码文件。 镜像IMAGE ID唯一标识镜像。
镜像文件由多个层组成。相同的镜像层本地只会存储一份,减少存储空间。
创建
-
已有镜像的容器
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] docker commit -m "add a new file" -a "vera" alertmanger testcreate:0.1 //根据容器创建镜像
-
基于本地模板导入
使用Open VZ提供模板创建 openvzdocker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] cat centos-6-x86-minimal.tar.gz | docker import - centos:6 //根据模板导入创建镜像
-
Dockerfile构建
四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行简介
$ cat /data/docker/alertmanager/Dockerfile ARG ARCH="amd64" ARG OS="linux" # 基础镜像,本地不存在拉仓库。 Dockerfile中必须有FROM指令 FROM quay.io/prometheus/busybox-${OS}-${ARCH}:latest # LABEL指定镜像元信息,maintainer指定维护者信息 LABEL version="0.1.16" LABEL maintainer="The Prometheus Authors <prometheus-developers@googlegroups.com>" # 镜像操作指令 COPY ./bin/alertmanager /bin/alertmanager # 本机目录复制到镜像内 ADD ./start.sh /start.sh # 复制到镜像内可正则,如果是tar自动解压 RUN mkdir -p /alertmanager/cfg && \ # 每运行一条RUN指令,镜像新增一层,并提交 chown -R root:root /alertmanager/cfg COPY ./cfg/* /alertmanager/cfg/ USER root # 指定用户 EXPOSE 9093 # 声明镜像内暴露的端口,启动时-P指定完成与主机的端口映射 VOLUME [ "/alertmanager/data" ] # 创建挂载点 WORKDIR /alertmanager # 为RUN、CMD、ENTRYPOINT指定默认工作目录 # STOPSIGNAL signal # 容器接收退出时的信号值 # HEALTHCHECK NONE # 禁用监控检测 # 容器启动执行 # 只能有一条CMD命令,指定了多条命令,最后一条被执行。启动run容器时指定运行命令,会覆盖CMD CMD ["sh" ,"-c", "/start.sh"] # 镜像默认入口命令,启动容器时为根命令运行。运行run时--entrypoint可以覆盖 ENTRYPOINT ["sh","-c","/start.sh"]
构建
# 基于存在Dockerfile文件目录构建镜像 docker build -t myalert:1.16.0 /data/docker/alertmanager/ # .dockerignore文件忽略匹配模式路径下目录和文件 # 一般在Dockerfile中使用了正则复制时,额外排除用 $ cat /data/docker/alertmanager/.dockerignore cfg/*.txt
查看
docker images // 查看本地所有镜像
docker tag alertmanager:latest myalert:1.16.0 //添加镜像标签。两个tag的ImageID一致
docker inspect myalert:1.16.0 //查看镜像详细信息
docker inspect myalert:1.16.0 -f {{.Config}} //获取镜像配置信息
docker history myalert:1.16.0 //查看镜像各层的创建信息
docker history myalert:1.16.0 --no-trunc //过长命令不截断
docker search nginx -s 3 //搜寻镜像指定stars大于3
操作
docker rmi alertmanager-v4:latest alertmanager-v7 //指定tag删除镜像
docker rmi 5d192514640e //指定imageID删除镜像
docker pull Name[:TAG] //拉取镜像,默认仓库registry.hub.docker.com,默认tag为latest非稳定版
docker push [OPTIONS] NAME[:TAG]
docker tag myalert:1.16.0 vera/alertmanager:1.16.0 //推到默认仓库,用户为vera
docker tag myalert:1.16.0 hub.c.163.com/vear/alertmanager:1.16.0
docker push hub.c.163.com/vera/alertmanager //推到指定仓库,用户为vera,要登录
docker save -o alertmanager.tar myalert:1.16.0 //保存镜像
docker rmi myalert:1.16.0
docker load --input alertmanager.tar //载入镜像
网友评论