docker never exits container
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.
supervisor daemon to start a Node.js service:
- Install supervisor:
npm install -g supervisor
- Create the
- supervisord.conf
file and add the following content:
[supervisord] nodaemon=true [program:app] command=supervisor app.js directory=/app autostart=true autorestart=true user=root
- Add the following configuration in the Dockerfile:
RUN apt-get update && apt-get install -y supervisor COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
docker build -t IMAGE_NAME . docker run -d IMAGE_NAME
systemd to monitor Docker containers:
- Create a systemd unit file, such as
- mydocker.service
, the file content is as follows :
[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
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 above is the detailed content of docker never exits container. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

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)

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).

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.

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

DockerVolumes ensures that data remains safe when containers are restarted, deleted, or migrated. 1. Create Volume: dockervolumecreatemydata. 2. Run the container and mount Volume: dockerrun-it-vmydata:/app/dataubuntubash. 3. Advanced usage includes data sharing and backup.

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".
