AWSでのDocker利用はECS、AWS Batchで利用する場合が多い。
共通でコンテナを作成、リポジトリに登録するコンテナimageのPUSHまでの操作について記載する。
amzn2-ami-ecs-hvm-2.0.20200115-x86_64-ebs (ami-0cdf0c91f1d10e38e)
#!/bin/bash yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm systemctl start amazon-ssm-agent
yum install python3 -y pip3 install awscli --upgrade
export PATH=$PATH:/usr/local/bin vi ~/.bash_profile //永続としたい場合は左記ファイルに追記
imageのベースは、https://hub.docker.com/_/amazonlinuxを利用して説明する
docker pull amazonlinux #↑dockerhubのURLの最後の部分
docker run --name amazonlinuxcontainer -it amazonlinux #↑container名 ↑image名
上記コマンドを実施すると「bash-4.2#」と表示され、コンテナ内を操作できる。
「exit」で抜けられるが、containerがstop状態になるので、再度入りたい場合はcontainerをstartさせる必要がある。
docker start amazonlinuxcontainer #↑container名 docker exec -it amazonlinuxcontainer /bin/bash #↑container名
imageの作成には2つのやり方がある。
docker stop docker amazonlinuxcontainer #↑container名 docker commit amazonlinuxcontainer XXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/XXXXXXXX:latest #↑container名 ↑リポジトリURI ↑タグ(特に指定なければlatest)
docker build -t XXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/XXXXXXXXXX:latest #↑リポジトリURI ↑タグ(特に指定なければlatest)
buildの場合はDockerfileが必要になるので事前に準備しておくこと。
※AWSBatchのコンテナプロパティで指定するコマンドは、DockerfileのCMDコマンドと競合(コンテナプロパティが優先)するので注意が必要
FROM amazonlinux:latest #どのイメージを基にするか #↑image名 ↑tag名 RUN <command> #docker run時に実行されるコマンド CMD <command> #コンテナ起動時に実行、"一つだけ"記述できます。
その他のコマンドは下記サイトを参照するとわかりやすい。
https://qiita.com/yu-croco/items/9b190f99fae982202c19
AWSREGION=ap-northeast-1 $(aws ecr get-login –region ${AWSREGION} –no-include-email)
docker push XXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/XXXXXXX:latest #↑リポジトリURI ↑タグ(特に指定なければlatest)