我在Dockerfile
中有一个简单的python图像:
FROM python:3.8-slim-buster
RUN apt-get -y update
RUN apt-get -y install git
RUN apt-get update \
&& apt-get install gcc -y \
&& apt-get clean
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install --upgrade pip
RUN pip3 install -r requirements.txt
ENTRYPOINT ["python"]
我曾经用一个restart: unless-stoped
属性的docker-compose.yml
文件运行过这个程序。现在每次我停止容器,它都会立即重新启动。它的行为就像restart: always
一样。即使当我放入restart: no
,停止容器,重建和docker run
,同样的事情还是会发生。“
"我怎样才能彻底杀死这个容器“
更多详细信息:
这是每次自动运行的命令(根据建议here执行docker inspect --format "$(curl -s https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl)" <container id>
时获得此命令:
docker run \
--name "/src_python_run_b28e47065e14" \
--runtime "runc" \
--volume "/home/dir/src:/app:rw" \
--log-driver "json-file" \
--restart "" \
--network "my-network_default" \
--network-alias "src_python_run_b28e47065e14" \
--network-alias "6116957bb6af" \
--hostname "6116957bb6af" \
--env "PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
--env "LANG=C.UTF-8" \
--env "PYTHON_VERSION=3.8.15" \
--env "PYTHON_PIP_VERSION=22.0.4" \
--env "PYTHON_SETUPTOOLS_VERSION=57.5.0" \
--env "PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/66030fa0332b4914d4c4d089661a0bdeeeb274/public/get-pip.py" \
--label "com.docker.compose.config-hash"="b2a7338a55582eb17895d8b5c2ee820d7c84ed2c900d7d7de0bb1fa787638d" \
--label "com.docker.compose.container-number"="1" \
--label "com.docker.compose.depends_on"="" \
--label "com.docker.compose.image"="sha256:83d2d8f4fc6374f478b982ecc217caf34c58bccf4a497d182a6e1fe35e5e04" \
--label "com.docker.compose.oneoff"="True" \
--label "com.docker.compose.project"="src" \
--label "com.docker.compose.project.config_files"="/home/dir/src/docker-compose.yml" \
--label "com.docker.compose.project.working_dir"="/home/dir/src" \
--label "com.docker.compose.service"="python" \
--label "com.docker.compose.slug"="b28e47065e14275ac786d683ffcc7cc7489e3efef144d45ab9e2ad4bf48023" \
--label "com.docker.compose.version"="2.5.0" \
--attach stdin \
--attach stdout \
--attach stderr \
--interactive \
--entrypoint "python" \
"src_python" \
"-m" "test" "run" "--file" "true"
有趣的更新
作为一个临时测试,我删除了docker-compose.yml
和Dockerfile
,这样我就知道没有容器可以重新启动。
奇怪的是,尽管容器停止了并且没有重新启动,但我仍然可以将其视为一个进程。
user 2963491 0.0 0.3 728792 24608 ? Rl 17:01 0:00 docker-compose run python -m test run --file true
我试着杀死这个进程,但它不工作,因为它没有修复,PID正在改变意味着进程被停止,并重新启动。为什么会发生这种情况?
1条答案
按热度按时间bkhjykvo1#
在您的描述中,您有一个排印错误
unless-stoped
-〉unless-stop**p* 艾德并且在检查响应中,重新启动参数为空。查看
docker run --restart
的文档,您正在使用¨¨
,但这不是一个选项:https://docs.docker.com/engine/reference/run/#restart-policies---restart