amazon-web-services - 如何在 Docker 容器中运行命令
问题描述
我是 Docker 新手,我正在尝试了解以下设置。
我想调试我的 docker 容器,看看它在作为Fargate
. 建议我运行命令:
curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
但我不知道该怎么做。
该设置使用 Gitlab CI 构建,使用 dockerpush
容器构建AWS ECR
.
这是码头文件:
FROM rocker/tidyverse:3.6.3
RUN apt-get update && \
apt-get install -y openjdk-11-jdk && \
apt-get install -y liblzma-dev && \
apt-get install -y libbz2-dev && \
apt-get install -y libnetcdf-dev
COPY ./packrat/packrat.lock /home/project/packrat/
COPY initiate.R /home/project/
COPY hello.Rmd /home/project/
RUN install2.r packrat
RUN which nc-config
RUN Rscript -e 'packrat::restore(project = "/home/project/")'
RUN echo '.libPaths("/home/project/packrat/lib/x86_64-pc-linux-gnu/3.6.3")' >> /usr/local/lib/R/etc/Rprofile.site
WORKDIR /home/project/
CMD Rscript initiate.R
这是gitlab-ci.yml
文件:
image: docker:stable
variables:
ECR_PATH: XXXXX.dkr.ecr.eu-west-2.amazonaws.com/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
services:
- docker:dind
stages:
- build
- deploy
before_script:
- docker info
- apk add --no-cache curl jq py-pip
- pip install awscli
- chmod +x ./build_and_push.sh
build-rmarkdown-task:
stage: build
script:
- export REPO_NAME=edelta/rmarkdown_report
- export BUILD_DIR=rmarkdown_report
- export REPOSITORY_URL=$ECR_PATH$REPO_NAME
- ./build_and_push.sh
when: manual
这是构建和推送脚本:
#!/bin/sh
$(aws ecr get-login --no-include-email --region eu-west-2)
docker pull $REPOSITORY_URL || true
docker build --cache-from $REPOSITORY_URL -t $REPOSITORY_URL ./$BUILD_DIR/
docker push $REPOSITORY_URL
我想在我的 docker 容器上运行这个命令:
curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
如何在 Fargate 的容器启动时运行此命令?
解决方案
要在 docker 容器内运行命令,您需要在 docker 容器内。
第 1 步:找到您要调试的容器 ID/容器名称
docker ps
将显示容器列表,选择其中一个
步骤 2 运行以下命令
docker exec -it <containerName/ConatinerId> bash
,然后输入等待几秒钟,您将进入具有交互模式的 docker 容器中Bash
有关更多信息,请阅读https://docs.docker.com/engine/reference/commandline/exec/
推荐阅读
- javascript - 从特定列中删除排序
- arrays - 解析 JSON 数组的第一个元素(从谷歌表格获取数据)
- angular - Angular 显示默认页面。怎么修?
- reactjs - 如何使用 reactjs 将值存储在组件外部的一个变量中
- php - 尝试在 localhost php 中发送电子邮件时出错
- python - CVXPY 是否支持 trace(XT@A@X),其中 X、A 都是矩阵?
- javascript - 如何解决javascript中的异步等待问题?
- javascript - 从 promise 导出变量然后阻塞
- node.js - 谷歌语音到文本无法在 nodejs 上运行
- java - 获取方法中的所有变量名