search
HomeOperation and MaintenanceDockerdocker never exits container

docker never exits container

May 16, 2023 pm 08:35 PM

To keep the Docker container running and not exiting, there are many ways to do it. In this article, we'll cover some commonly used methods and their pros and cons.

Method 1: Use the --restart option

Docker provides an option --restart, which can automatically restart the container when the container exits abnormally. There are three optional values, namely no, on-failure and always, which respectively correspond to no restart, restart on abnormal exit and always restart. Specific example:

docker run --restart=always IMAGE_NAME

The advantage of using the --restart option is that it is simple and easy to use. You only need to add an option to the command line. But if an error occurs in the container, it will continue to restart until the container is manually stopped. This can lead to code instability and data loss.

Method 2: Use Docker Compose

Docker Compose is a tool that can define and run multiple Docker containers. It can describe the relationship between containers and startup parameters through a yml file. Add the following configuration in the docker-compose.yml file:

version: '3'

services:
  app:
    build: .
    restart: always

Then you can use the docker-compose command to start the container:

docker-compose up -d

# The ##restart: always option tells Docker to automatically restart the container when the container exits abnormally. The advantage of this method is that it can manage multiple containers, which is convenient and fast, but there is still the problem of containers restarting all the time.

Method 3: Use a daemon process

Using a daemon process is a reliable way to keep the Docker container from exiting. Start a daemon in the container and let the Docker container run under the supervision of the daemon. If there is a problem with the container, the daemon will restart the container.

The following is an example, using the

supervisor daemon to start a Node.js service:

    Install supervisor:
  1. npm install -g supervisor
    Create the
  1. supervisord.conf file and add the following content:
  2. [supervisord]
    nodaemon=true
    
    [program:app]
    command=supervisor app.js
    directory=/app
    autostart=true
    autorestart=true
    user=root
    Add the following configuration in the Dockerfile:
  1. RUN apt-get update && apt-get install -y supervisor
    
    COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
Generate Mirror and start the container:

docker build -t IMAGE_NAME .
docker run -d IMAGE_NAME

The advantage of using a daemon is that you can flexibly control the behavior of the container, but it requires some additional configuration work, and you need to start a daemon, which takes up some system resources.

Method 4: Use external monitoring

Using an external monitoring system to monitor the Docker container and restart the container when an exception occurs, you can control the behavior of the container more flexibly. When a container is abnormal, the monitoring system can take some actions, such as issuing an alarm, recording logs, restarting the container, etc.

For example, you can use

systemd to monitor Docker containers:

    Create a systemd unit file, such as
  1. mydocker.service, the file content is as follows :
  2. [Unit]
    Description=My Docker Container
    
    [Service]
    ExecStart=/usr/bin/docker start -a myapp
    Restart=always
    RestartSec=10s
    ExecStop=/usr/bin/docker stop -t 2 myapp
    
    [Install]
    WantedBy=default.target
This file defines a container named

myapp. When a problem occurs with the container, systemd will automatically restart the container. Use the systemctl command to enable this service:

sudo systemctl daemon-reload
sudo systemctl enable mydocker.service
sudo systemctl start mydocker.service

The advantage of using external monitoring is that it is more flexible and can use various third-party monitoring systems, but it requires additional configuration and maintenance work.

In general, there are many ways to keep Docker containers running for a long time, each with its own advantages and disadvantages. The specific choice should be based on actual needs. When starting a container, you should also consider the stability and security of the container's operation, and use appropriate automation tools to reduce manual operations.

The above is the detailed content of docker never exits container. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Docker on Linux: Applications and Use CasesDocker on Linux: Applications and Use CasesApr 17, 2025 am 12:10 AM

Docker simplifies application deployment and management on Linux. 1) Docker is a containerized platform that packages applications and their dependencies into lightweight and portable containers. 2) On Linux, Docker uses cgroups and namespaces to implement container isolation and resource management. 3) Basic usages include pulling images and running containers. Advanced usages such as DockerCompose can define multi-container applications. 4) Debug commonly used dockerlogs and dockerexec commands. 5) Performance optimization can reduce the image size through multi-stage construction, and keeping the Dockerfile simple is the best practice.

Docker: Containerizing Applications for Portability and ScalabilityDocker: Containerizing Applications for Portability and ScalabilityApr 16, 2025 am 12:09 AM

Docker is a Linux container technology-based tool used to package, distribute and run applications to improve application portability and scalability. 1) Dockerbuild and dockerrun commands can be used to build and run Docker containers. 2) DockerCompose is used to define and run multi-container Docker applications to simplify microservice management. 3) Using multi-stage construction can optimize the image size and improve the application startup speed. 4) Viewing container logs is an effective way to debug container problems.

How to start containers by dockerHow to start containers by dockerApr 15, 2025 pm 12:27 PM

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".

How to view logs from dockerHow to view logs from dockerApr 15, 2025 pm 12:24 PM

The methods to view Docker logs include: using the docker logs command, for example: docker logs CONTAINER_NAME Use the docker exec command to run /bin/sh and view the log file, for example: docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log Use the docker-compose logs command of Docker Compose, for example: docker-compose -f docker-com

How to check the name of the docker containerHow to check the name of the docker containerApr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

How to create containers for dockerHow to create containers for dockerApr 15, 2025 pm 12:18 PM

Create a container in Docker: 1. Pull the image: docker pull [mirror name] 2. Create a container: docker run [Options] [mirror name] [Command] 3. Start the container: docker start [Container name]

How to exit the container by dockerHow to exit the container by dockerApr 15, 2025 pm 12:15 PM

Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

How to copy files in docker to outsideHow to copy files in docker to outsideApr 15, 2025 pm 12:12 PM

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool