Docker-镜像

606 阅读1分钟

1.镜像是什么

简单来说,Docker镜像就是将环境依赖或者应用程序以Docker的规范和形式打包后的文件,可以用来作为模板创建、启动Docker容器。

2.生成镜像

2.1 通过docker commit命令从容器生成镜像

步骤:基于镜像创建容器 > 在容器中修改部分内容 > 使用docker commit生成新镜像

这种方式生成镜像,不利于维护,尤其是镜像分层越来越多时。一方面镜像分层数是有上限的(128);另一方面,底层镜像需要修改时,每一层都需要修改,特别麻烦。

2.2 通过Dockerfile生成镜像(推荐)

Docker使用了通过Dockerfile创建镜像的功能,其命令行语法为docker build

3.镜像相关命令

3.1 查看本地镜像

docker images

3.2 查找Docker仓库中的镜像

docker search IMAGE

3.3 从Docker仓库下载镜像

dokcer pull IMAGE

3.4 以镜像为模板创建并启动容器

docker run IMAGE 

3.5 将容器提交为新镜像

docker commit [选项] CONTAINER_ID IMAGE
选项
-m "改动信息"
-a "作者相关信息"

3.6 向Docker仓库推送镜像

docker push IMAGE

3.7 删除指定名称镜像

docker rmi IMAGE

3.8 删除所有镜像

docker rmi -f $(docker images)

4.实例

通过MariaDB镜像创建并启动容器,同时指定容器名称(--name)、映射本地端口(-p)、配置环境变量(-e)、绑定数据卷(-v [host-dir]:[container-dir]:[rw|ro]),并且后台运行(-d)。

sudo docker run --name mariadb \
  -v /data/mariadb/data:/var/lib/mysql \
  -p 3307:3306 \
  -e MYSQL_ROOT_PASSWORD= \
  -e MYSQL_ROOT_HOST=% \
  -d mariadb:10.2