这是我的问题:
我有一个任务在Amazon ECS上运行docker映像,但我想从容器的运行实例中创建一个新的docker映像。
我在Amazon Ecs上看到了实例的ID,我已经创建了AMI,但是我想创建一个新的docker image,可以从Amazon中提取它。
有任何想法吗 ?
问候和感谢
除了@Ben Whaley提供的答案外,我个人建议您 使用Docker API。 要使用Docker API,您需要
配置docker守护程序端口,此处介绍了配置docker守护程序端口的步骤
让我们使用基本的Ubuntu Image运行容器,并在容器内创建一个文件夹 :
#docker run -it ubuntu:14.04 /bin/bash
root@58246867493d:/#
root@58246867493d:/# cd /root
root@58246867493d:~# ls
root@58246867493d:~# mkdir TEST_DIR
root@58246867493d:~# exit
退出容器的状态:
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58246867493d ubuntu:14.04 "/bin/bash" 2 minutes ago Exited (127) 57 seconds ago hungry_turing
JSON文件,是用于提交容器的输入:
#cat container_create.json
{
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"property1": {},
"property2": {}
},
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Cmd": null,
"Image": "ubuntu:14.04",
"Volumes": {
"additionalProperties": {}
},
"Labels": {
"property1": "string",
"property2": "string"
}
}
提交容器的API
# curl -X POST http://127.0.0.1:6000/commit?container=58246867493d\&repo=ubuntu\&tag=15.0 -d @container_create.json --header "Content-Type: application/json" | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 593 100 81 100 512 175 1106 --:--:-- --:--:-- --:--:-- 1108
{
"Id": "sha256:acac1f3733b2240b01e335642d2867585e5933b18de2264315f9b07814de113a"
}
生成的ID是通过提交容器构建的新映像ID。
获取码头图片
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
**ubuntu 15.0 acac1f3733b2 10 seconds ago 188MB**
ubuntu 14.04 132b7427a3b4 10 hours ago 188MB
运行新生成的映像,以查看在先前容器中提交的更改。
# docker run -it ubuntu:15.0 /bin/bash
root@3a48af5eaec9:/# cd /root/
root@3a48af5eaec9:~# ls
TEST_DIR
root@3a48af5eaec9:~# exit
要从Docker文件构建映像,如何使用 DockerAPI构建映像
有关 Docker API的更多信息
,请参阅此处。
我想删除这两个图像 如何走出圈子?
问题内容: 我的Docker映像构建在Jenkins CI服务器上,并被推送到我们的私有Docker Registry。我的目标是使用docker- compose配置环境,该环境始终会启动映像的原始构建状态。 我目前在不同的机器上使用docker-compose 1.3.2和1.4.0,但是我们之前也使用了旧版本。 我总是使用命令从注册表中获取新图像并启动它们。我相信我的首选行为在某个时间点之前
在运行容器之后,我应该如何更改我的Dockerfile以使其具有一个正在运行的MySQL服务?
我有一个运行的Mongo DB容器,名为xyz,来自官方Mongo图像。我用创建了这个容器,在这个容器中,我创建了两个带有样本数据的集合。 现在我想在dockerhub上的新图像中提取这个容器。 我使用了docker commit,创建了一个新图像,并将其推送到docker hub上。如果我在另一个系统上提取图像,并从该图像创建一个新的容器,那么在我的原始容器xyz中就没有类似的数据。 经过研究,
有没有人知道,如果我们想在运行在多个docker容器上的Hazelcast实例之间形成Hazelcast集群,那么需要在Hazelcast.xml中进行哪些配置。我们应该提供127.0.0.1作为成员的地址还是应该提供docker主机的地址?Local.LocalAddress属性是否需要指向docker主机地址? 编辑: