首页 > 解决方案 > 如何退出容器?

问题描述

我创建了一个包含以下内容的 Dockerfile:

FROM ubuntu:bionic as builder

ARG DIGITALOCEAN_ACCESS_TOKEN

RUN apt-get update
RUN apt-get install -y curl

WORKDIR /app

RUN curl -L https://github.com/digitalocean/doctl/releases/download/v1.41.0/doctl-1.41.0-linux-amd64.tar.gz  | tar xz
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
RUN curl -L https://github.com/argoproj/argo-cd/releases/download/v1.4.3/argocd-linux-amd64 -o argocd

RUN chmod +x ./argocd
RUN chmod +x ./kubectl

RUN mv ./argocd /usr/local/bin/
RUN mv ./kubectl /usr/local/bin/
RUN mv ./doctl /usr/local/bin/


CMD doctl auth init -t ${DIGITALOCEAN_ACCESS_TOKEN} \
    doctl account get \
    if [ $? -eq 1 ] then exit fi

我想要实现什么,当doctl account get返回代码时1,它不应该开始运行容器。

上面的 Dockerfile 没有按预期工作。我究竟做错了什么?

标签: dockerdockerfile

解决方案


如果我没记错的话,你的意思是在后台启动容器[不与它交互],所以,你可以使用选项 -d 在分离模式下运行它

docker run -it -d image_name /bin/bash

那么你可以使用

docker exec container_id /bin/bash 

再次工作到同一个容器

查看退出 Docker 容器的更详细评论

你也可以搜索 Docker 的文档。


推荐阅读