LoginSignup
9
5

More than 5 years have passed since last update.

Amazon ECRの操作

Last updated at Posted at 2018-07-12

リポジトリの作成

リポジトリを最初に作成する。イメージを入れる箱と考えればOK。このあたり一回作ってしまえばあまり変更しないので個人的にはGUIでもCUIでも作っていい感じがする。

$ aws ecr create-repository --repository-name testrepository
{
    "repository": {
        "repositoryArn": "arn:aws:ecr:ap-northeast-1:11111111:repository/testrepository",
        "registryId": "1111111111",
        "repositoryName": "testrepository",
        "repositoryUri": "111111111111.dkr.ecr.ap-northeast-1.amazonaws.com/testrepository",
        "createdAt": 15234343233.0
    }
}

docker imageの作成

このあたりはDocker imageを作る手順と同じでDockerFileを最初に作る。
DockerFileが存在する配下で

テスト的にDockerfileを作成する

FROM centos:6.7

RUN yum -y update
RUN yum install -y https://centos6.iuscommunity.org/ius-release.rpm
RUN yum install -y python36*
RUN curl -O https://bootstrap.pypa.io/get-pip.py
RUN python3.6 get-pip.py --user
RUN pip3.6 install awscli
RUN rpm --rebuilddb; yum install -y yum-plugin-ovl
RUN yum install -y git2u
RUN rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
RUN yum install -y --enablerepo=remi --enablerepo=remi-php72 php 

$ docker build -t testrepository .
・・・・・
・・・・・
・・・・・

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
testrepository       latest              e15196bab888        1 days ago         1.12GB

Aws configure

aws configureでMACに自分のAccessKeyとSecretKeyを登録する

$aws configure
AWS Access Key ID []:XXXXXXXXXXXXX
AWS Secret Access Key []:YYYYYYYYYYYYY
Default region name []:ap-northeast-1
Default output format [None]:

ECRのログイン情報を取得する

$ aws ecr get-login --no-include-email --region ap-northeast-1
docker login -u AWS -p eyJwYXlsb2FkIjoiL3AAAAAAAAAAAAAAAAAAAAAAAhTjVyY1J6RHBRNGEycExFeFBrODJtVDFJaGU0V25KYUd1N2NQcEp3QjgrcXlmUWlXUkZCZnAwRExPcGthTTUvdERmc3JJdGZBZ1phbWJWK1BpQ0xZeHpqNzIxcUZ6Z3dJM21sQkNVSTNTMFJybmF4bG1lOEZITFF4Zi84dDBLYmdjUnR2Uk9abmlBNG1QcWRDQmNYNHdBBBBBBBBBBBBBBBBBBmSTFIUk0xaHRmWlVTTUcvTCt0UlhxSWROdDFxUjg0dFJKOVQzZHM2aSt1QVNsS0tpOXFOaTRmT2RDZkRLcUVqd1・・・・・・・・・・・・

上記の長いレスポンスの文字列をコピーして実行する。

リポジトリにイメージをPushする際にこんなエラーが出る。

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

これはコマンドを

$ aws ecr get-login --region ap-northeast-1

でやると発生するので、

$ aws ecr get-login --no-include-email --region ap-northeast-1

としてあげて、その結果を入力すればコマンドはとおるようになる。

一応確認

初めてのリポジトリの場合

{
    "repositories": []
}

リポジトリが既に存在する場合

$ aws ecr describe-repositories
{
    "repositories": [
        {
            "registryId": "11111111111111111",
            "repositoryName": "testrepository",
            "repositoryArn": "arn:aws:ecr:ap-northeast-1:11111111111111111:repository/testrepository",
            "createdAt": 1531436328.0,
            "repositoryUri": "144184236868.dkr.ecr.ap-northeast-1.amazonaws.com/testrepository"
        },
        {
            "registryId": "2222222222222",
            "repositoryName": "ecr-handson-httpd",
            "repositoryArn": "arn:aws:ecr:ap-northeast-1:144184236868:repository/ecr-handson-httpd",
            "createdAt": 1531367193.0,
            "repositoryUri": "144184236868.dkr.ecr.ap-northeast-1.amazonaws.com/ecr-handson-httpd"
        },
        {
            "registryId": "3333333333",
            "repositoryName": "relo/centos",
            "repositoryArn": "arn:aws:ecr:ap-northeast-1:3333333333333:repository/relo/centos",
            "createdAt": 1531387702.0,
            "repositoryUri": "333333333333.dkr.ecr.ap-northeast-1.amazonaws.com/relo/centos"
        }
    ]
}

イメージをPush

あとはこれをECRにpushする。

$ docker push 144184236868.dkr.ecr.ap-northeast-1.amazonaws.com/testrepository:latest
9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5