使用Docker Commit和Dockerfile创建Docker映像

2020年12月30日11:27:11 发表评论 45 次浏览

介绍

在学习了使用Docker的基础知识之后, 下一步就是学习如何创建和保存自己的映像。

有两种创建Docker映像的方法:手动使用码头工人提交命令, 或自动使用Dockerfile。

要求

  • notlogy Linux云服务器
  • Docker已安装并正在运行
  • 对Docker功能和命令有基本的了解

有关安装和使用Docker的更多信息, 请参阅我们的其他文章:

  • 在Linux服务器上安装Docker

  • Docker快速入门指南:使用图像和容器

在不使用Sudo的情况下安全地使用Docker

Docker守护程序以根, 这意味着用户将需要使用须藤运行Docker命令

避免使用须藤对于每个Docker命令, 只需将你的用户添加到码头工人使用以下命令分组:

usermod -aG docker [username]

例如, 通过添加用户do对于Docker组, 该用户将不再需要对每个Docker命令使用sudo。要将用户添加到组, 请使用以下命令:

usermod -aG docker jdoe

使用" docker commit"手动创建映像

最简单的开始方法是根据现有映像创建容器, 进行更改, 然后将该容器另存为映像。在本教程中, 我们将从官方的CentOS 7映像创建一个容器, 安装MySQLdb Python模块, 然后使用以下命令将该新容器另存为映像码头工人提交.

正式的CentOS 7映像命名为中心。你可以使用以下命令从Docker注册表中下载它:

sudo docker pull centos

注意:如果你想使用Ubuntu, 只需替换一个Ubuntu映像即可。

首先启动一个名为python-with-mysql来自中心带有命令的图像:

sudo docker run -it --name python-with-mysql centos bash

在新容器中的命令提示符下, 使用以下命令安装MySQLdb Python模块:

yum -y install MySQL-python

安装完成后, 使用CTRL-pCTRL-q退出容器。

接下来, 使用码头工人提交命令, 其语法如下:

sudo docker commit -m "[build notes]" -a "creator info" [container name or ID] [name of image]:[version tag]
  • 建立笔记:对此图像所做的更改的简要说明。
  • 创作者信息:你的姓名和联系信息(如果有)。
  • 容器名称或ID:你可以使用命令sudo docker ps -a找到此信息。
  • 图片名称:为你的图片起一个简短但具有描述性的名称。
  • 可选的:版本标签:图像的版本号。你可以指定一个数字(例如v1, v2, v3等), 也可以使用"最新"。如果你省略了版本标签, 则假定为"最新"。

保存容器python-with-mysql作为名为python / mysql的, 使用命令:

sudo docker commit -m "Added MySQL-python module" -a "J Doe" python-with-mysql python/mysql

要从此新映像运行容器, 请使用以下命令:

sudo docker run -it python/mysql /bin/bash

使用Dockerfile自动创建映像

使用手动创建图像码头工人提交效果很好, 但这是一个繁琐的过程。与你的团队共享一个Dockerfile也比共享一个他们需要运行的命令列表更容易。虽然码头工人提交对于某些用途效果很好, 从长远来看, 使用Dockerfile更实用。

Dockerfile包含一组用于构建新映像的指令。在本教程中, 我们将按照与上一节相同的过程进行操作:我们将从官方CentOS 7映像创建一个容器, 并安装MySQLdb Python模块。

正式的CentOS 7映像命名为中心。你可以使用以下命令从Docker网站下载它:

sudo docker pull centos

注意:如果你想使用Ubuntu, 只需替换一个Ubuntu映像即可。

首先, 为你的Dockerfile创建一个新目录:

mkdir python-mysql

在此目录中, 你将放置要包含在构建中的所有必要文件。首先要创建一个新目录, 这一点很重要, 因为当你运行build命令时, 该目录中的所有内容都会转移到Docker守护程序中。

接下来, 创建一个名为Docker文件在 - 的里面python-mysql目录。请注意, 文件名必须大写。

cd python-mysql
sudo nano Dockerfile

该文件将包含你所有的构建命令。可以找到可用命令及其用法的完整列表在Docker网站上.

Dockerfile的基本内容很简单:

  • 以a开头的任何行#将被跳过。使用它发表评论。
  • 标准格式为:指令声明, 并附全大写说明。

将以下内容放入你的Docker文件:

# The source image to start with
FROM centos

# Your contact info
MAINTAINER J Doe <jdoe@example.com>

# Run a command inside the image
RUN yum -y install MySQL-python

保存并退出文件。

生成名为python / mysql / docker文件从此Dockerfile中, 使用以下命令:

sudo docker build -t python/mysql/dockerfile:v1 .

对于Dockerfile, 我们指定版本v1因为期望将来可以共享和/或更新该图像。

启动名为的容器python-with-mysql-from-dockerfile来自python / mysql / docker文件图片, 使用命令:

sudo docker run --name python-with-mysql-from-dockerfile -it python/mysql/dockerfile:v1 bash
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: