一、创建镜像
1、在EC2实例上安装docker
更新实例上已安装的程序包和程序包缓存
sudo yum update -y
安装最新的 Docker Community Edition 程序包
sudo amazon-linux-extras install docker
启动 Docker 服务
sudo service docker start
(可选)将 ec2-user 添加到 docker 组,以便能够执行 Docker 命令,而无需使用 sudo。
sudo usermod -a -G docker ec2-user
退出当前ssh会话,重新连接,新 SSH 会话将具有相应的 docker 组权限。
验证在无sudo情况下运行docker命令
docker info
2、创建Docker映像
touch Dockerfile
Dockerfile内容为创建一个Apache的网页,显示Hello World!
FROM ubuntu:18.04
# Install dependencies
RUN apt-get update && \
apt-get -y install apache2
# Install apache and write hello world message
RUN echo 'Hello World!' > /var/www/html/index.html
# Configure apache
RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \
echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \
echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \
echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \
chmod 755 /root/run_apache.sh
EXPOSE 80
CMD /root/run_apache.sh
从Dockerfile构建映像
docker build -t hello-world .
运行 docker images 以验证是否已正确创建映像
docker images --filter reference=hello-world
构建成功则输出:
运行新构建的映像,-p 80:80 选项将容器上公开的端口 80 映射到主机系统上的端口 80。将EC2ip复制到浏览器,页面出现Hello World!则表示构建成功。
docker run -t -i -p 80:80 hello-world
3、从控制台创建存储库
二、身份验证
在自己的用户下创建访问秘钥
aws conifgure
输入秘钥信息
查看cli版本
aws --version
1)使用 1.17.10 之前的 AWS CLI 版本时,使用 get-login 命令进行 Amazon ECR 注册表进行身份验证。(region替换为自己的region)
aws ecr get-login --region region --no-include-email
结果输出是 docker login 命令,将 docker login 命令复制并粘贴到终端,授权 Docker CLI 访问注册表。此命令提供一个授权令牌,此令牌在 12 小时内对指定注册表有效。
2)使用 1.17.10 之后的 AWS CLI 版本时,使用 get-login-password 针对 Amazon ECR 注册表验证 Docker。
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
三、推送映像
标记映像,以便将映像推送到存储库
docker tag hello-world:latest aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest
docker push 374284294913.dkr.ecr.cn-northwest-1.amazonaws.com.cn/ggg:latest
控制台刷新,出现自己刚刚推送的映像,推送成功