Работа с Docker контейнером

Опубликовано admin - чт, 03/04/2021 - 15:16

Вход в контейнер

docker exec -it <containerName_php> /bin/bash

Выход из запущенного контейнера с остановкой контейнера

ctrl + c, ctrl + d или ввести exit в терминале.

Выход из запущенного контейнера без остановки контейнера

нажав ctrl + p и ctrl + q один за другим

Список контейнеров

docker ps

Запуск контейнера

docker run -it -d docker_image_name bash

Работа с БД контейнера

mysqldump -h mariadb -u drupal -p budweiserbrewinggroup > bkp.sql

Пересоздание контейнеров

docker-compose stop
docker container prune
docker network prune
docker-compose up -d

Can't kill container?

Just recently I had the following issue while trying to stop my containers:

Error response from daemon: Cannot kill container: 9e81a44d4c79: Cannot kill container xxxx: unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"

The container was started regularly with docker-compose up, and after that, it wasn't reacting to:

docker-compose down
 
docker-compose stop xxx or
 
docker container stop xxx

It turned out that AppArmor service was messing up with Docker. AppArmor (or "Application Armor") is a Linux kernel security module that allows the system administrator to restrict programs' capabilities with per-program profiles. For this problem with containers, it helped me to remove the unknown from AppArmor using the following command:

sudo aa-remove-unknown

After that, I was able to stop and kill my containers. To kill all running Docker containers, you can use the following command:

docker container kill $(docker ps -q)

If this didn't work for you, you can remove AppArmor, and then install it afterward if it's needed:

sudo apt-get purge --auto-remove apparmor
sudo service docker restart
docker system prune --all --volumes

If some port busy

sudo lsof -i -P -n | grep LISTEN
udo kill -9 <process_pid>

Установка докера на Ubuntu

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update && sudo apt install docker-ce

sudo docker run hello-world

sudo groupadd docker

sudo usermod -aG docker $USER

newgrp docker

docker run hello-world

sudo systemctl enable docker

sudo service docker restart

sudo curl -L https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version