加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:42:59 所属栏目:安全 来源:网络整理
导读:这是我的问题: 我有一个在亚马逊ECS上运行docker镜像的任务,但我想从容器的运行实例中创建一个新的docker镜像. 我在Amazon Ecs上看到了实例的ID,我已经制作了一个AMI,但我想制作一个新的码头图像,我可以从亚马逊拉出来. 有任何想法吗 ? 问候和感谢 最佳答

这是我的问题:

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

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

有任何想法吗 ?

问候和感谢

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

让我们使用基础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是新的Image Id,它是通过提交容器构建的.

获取docker Images

# 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文件构建映像,how to build an image using docker API

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读