amazon-web-services – 如何从亚马逊上正在运行的容器创建新的docker镜像?

前端之家收集整理的这篇文章主要介绍了amazon-web-services – 如何从亚马逊上正在运行的容器创建新的docker镜像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我的问题:

我有一个在亚马逊ECS上运行docker镜像的任务,但我想从容器的运行实例中创建一个新的docker镜像.

我在Amazon Ecs上看到了实例的ID,我已经制作了一个AMI,但我想制作一个新的码头图像,我可以从亚马逊拉出来.

有任何想法吗 ?

问候和感谢

最佳答案
除了@Ben Whaley提供的答案之外,我个人建议您使用Docker API.要使用Docker API,您需要配置docker守护程序端口,此处将解释此过程configuring docker daemon port

让我们使用基础Ubuntu Image运行一个容器,并在容器内创建一个文件夹:

  1. #docker run -it ubuntu:14.04 /bin/bash
  2. root@58246867493d:/#
  3. root@58246867493d:/# cd /root
  4. root@58246867493d:~# ls
  5. root@58246867493d:~# mkdir TEST_DIR
  6. root@58246867493d:~# exit

退出容器的状态:

  1. # docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 58246867493d ubuntu:14.04 "/bin/bash" 2 minutes ago Exited (127) 57 seconds ago hungry_turing

JSON文件,它是用于提交容器的输入:

  1. #cat container_create.json
  2. {
  3. "AttachStdin": true,"AttachStdout": true,"AttachStderr": true,"ExposedPorts": {
  4. "property1": {},"property2": {}
  5. },"Tty": true,"OpenStdin": true,"StdinOnce": true,"Cmd": null,"Image": "ubuntu:14.04","Volumes": {
  6. "additionalProperties": {}
  7. },"Labels": {
  8. "property1": "string","property2": "string"
  9. }
  10. }

用于提交容器的API

  1. # 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 .
  2. % Total % Received % Xferd Average Speed Time Time Time Current
  3. Dload Upload Total Spent Left Speed
  4. 100 593 100 81 100 512 175 1106 --:--:-- --:--:-- --:--:-- 1108
  5. {
  6. "Id": "sha256:acac1f3733b2240b01e335642d2867585e5933b18de2264315f9b07814de113a"
  7. }

生成的Id是新的Image Id,它是通过提交容器构建的.

获取docker Images

  1. # docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. **ubuntu 15.0 acac1f3733b2 10 seconds ago 188MB**
  4. ubuntu 14.04 132b7427a3b4 10 hours ago 188MB

运行新构建的映像以查看上一个容器中提交的更改.

  1. # docker run -it ubuntu:15.0 /bin/bash
  2. root@3a48af5eaec9:/# cd /root/
  3. root@3a48af5eaec9:~# ls
  4. TEST_DIR
  5. root@3a48af5eaec9:~# exit

从Docker文件构建映像,how to build an image using docker API

有关docker API的更多信息,请参阅here.

猜你在找的Docker相关文章