~~NOCACHE~~
## AWSでのDocker操作
### はじめに
AWSでのDocker利用はECS、AWS Batchで利用する場合が多い。
共通でコンテナを作成、リポジトリに登録するコンテナimageのPUSHまでの操作について記載する。
##Docker導入済インスタンスの作成
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 //永続としたい場合は左記ファイルに追記
##Dockerコンテナの準備
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名
##container→imageの作成
imageの作成には2つのやり方がある。
###docker commitでのimageの作成
docker stop docker amazonlinuxcontainer
#↑container名
docker commit amazonlinuxcontainer XXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/XXXXXXXX:latest
#↑container名 ↑リポジトリURI ↑タグ(特に指定なければlatest)
###docker buildでのimageの作成
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 #docker run時に実行されるコマンド
CMD #コンテナ起動時に実行、"一つだけ"記述できます。
その他のコマンドは下記サイトを参照するとわかりやすい。
https://qiita.com/yu-croco/items/9b190f99fae982202c19
##imageのPUSH
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)
{{tag>AWS Docker AwsBatch ECS ECR}}