安装docker  

#yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

 

本章将介绍更多关于镜像的内容,包括:

从仓库获取镜像;

命令:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]     #默认拉取的是dockerhub中的镜像

例如:拉取nginx镜像

[root@localhost ~]# docker pull nginx

管理本地主机上的镜像:

1.列出镜像

docker image ls

使用镜像

列表包含了 仓库名 、 标签 、 镜像 ID 、 创建时间 以及 所占用的空间

2.查看镜像占用硬盘大小

使用镜像

 3.列出某个镜像

[root@localhost ~]# docker image ls nginx

4.以特定的格式显示镜像

使用镜像

 

5.删除本地镜像

命令:$ docker image rm [选项] <镜像1> [<镜像2> ...]

docker image rm ID

docker image rm 镜像名称

使用docker image ls来配合删除

例如:删除一个名为redis的镜像

docker image rm $(docker image ls -q redis)   #-q参数可以显示镜像id

例如:删除redis:2.2之前的镜像

docker image rm $(docker image ls -q -f before=redis:2.2)

例如:删除所有镜像 

 docker image rm $(docker image ls -q )

6.在容器中修改了文件,查看修改了哪些内容:可以使用docker diff命令

使用镜像

 

 

 docker diff显示结果中有三种状态

A 添加了一个文件或目录
B 文件或目录被删除
C原文出自

7.docker commit保存容器为镜像,一般用来保留现场,和虚拟机的快照功能比较相似

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

使用镜像

使用镜像

其中 --author 是指定修改的作者,而 --message 则是记录本次修改的内容。这点和 git

版本控制相似,不过这里这些信息可以省略留空。

8.Dockerfile制作镜像

Dockerfile 是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容

 

FROM:

使用docker制作镜像的时候大部分情况下需要在原有的镜像基础上进行部署,当然也有不需要基于基础镜像的

的情况,例如swarm、coreos、etcd.

需要制定基础的镜像的时候可以使用下面命令

#以nginx镜像作为基础镜像进行操作,默认nginx会到dockerhub上下载
FROM nginx   
#不以任何镜像为基础镜像可以使用
FROM scratch

RUN:

 

RUN 指令是用来执行命令行命令的。由于命令行的强大能力, RUN 指令在定制镜像时是最

常用的指令之一。其格式有两种:

1.shell 格式: RUN <命令>

RUN echo "Hello Docker" > /usr/share/nginx/index/index.html

2.exec 格式: RUN ["可执行文件", "参数1", "参数2"]

RUN ["/bin/bash","-c","echo hello"]

 注意:由于Dockerfile每一个Dockerfile指令都会生成一层镜像,目前限制是127层,所以尽可能的减少指令的层数,如下:

FROM debian:jessie
RUN buildDeps='gcc libc6-dev make' \
&& apt-get update \
&& apt-get install -y $buildDeps \
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \
&& mkdir -p /usr/src/redis \
&& tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \
&& make -C /usr/src/redis \
&& make -C /usr/src/redis install \
&& rm -rf /var/lib/apt/lists/* \
&& rm redis.tar.gz \
&& rm -r /usr/src/redis \
&& apt-get purge -y --auto-remove $buildDeps
View Code

构建镜像

在Dockerfile文件所在目录执行:docker build -t nginx:v3 .     #注意有个点   -t参数指定镜像名称

点理解为当前目录并不是特别准确,docker是C/S架构,docker build会通过API连接到server端进行构建的,docker并非在本地构建,

“.”可以理解为上下文目录,例如:

COPY ./package.json /app/

 

相关文章:

  • 2021-10-01
  • 2022-01-15
  • 2022-01-26
  • 2022-02-07
  • 2021-08-23
  • 2021-10-06
猜你喜欢
  • 2022-01-22
  • 2022-01-01
  • 2021-08-27
  • 2022-02-11
  • 2021-12-05
  • 2021-12-05
  • 2021-04-19
相关资源
相似解决方案