У меня была старая версия докера на моем сервере Ubuntu 19.10, и она работала просто отлично. Я удалил эту старую установку докера и попытался установить самую последнюю версию, используя руководство на https://docs.docker.com/engine/install/ubuntu/
Установка завершается неудачно, когда служба контейнера не может выполнить Начало. При попытке запуска containerd возникает следующая ошибка:
/usr/bin/containerd: symbol lookup error: /usr/bin/containerd: undefined symbol: seccomp_api_set
Вот ошибка во время установки:
invoke-rc.d: initscript docker, action "start" failed.
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2020-05-07 08:37:28 EDT; 15ms ago
Docs: https://docs.docker.com
Process: 17336 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=killed, signal=TERM)
Main PID: 17336 (code=killed, signal=TERM)
May 07 08:37:28 teddy-server systemd[1]: Starting Docker Application Container Engine...
May 07 08:37:28 teddy-server systemd[1]: docker.service: Main process exited, code=killed, status=15/TERM
May 07 08:37:28 teddy-server systemd[1]: docker.service: Succeeded.
May 07 08:37:28 teddy-server systemd[1]: Stopped Docker Application Container Engine.
dpkg: error processing package docker-ce (--configure):
installed docker-ce package post-installation script subprocess returned error exit status 1
Processing triggers for systemd (242-7ubuntu3.7) ...
Processing triggers for man-db (2.8.7-3) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for libc-bin (2.30-0ubuntu2.1) ...
Errors were encountered while processing:
docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)
И journalctl -xe:
Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit containerd.service has finished successfully.
--
-- The job identifier is 34974.
May 07 08:37:28 teddy-server systemd[1]: Listening on Docker Socket for the API.
-- Subject: A start job for unit docker.socket has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit docker.socket has finished successfully.
--
-- The job identifier is 34894.
May 07 08:37:28 teddy-server systemd[1]: Starting Docker Application Container Engine...
-- Subject: A start job for unit docker.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit docker.service has begun execution.
--
-- The job identifier is 34891.
May 07 08:37:28 teddy-server containerd[17335]: /usr/bin/containerd: symbol lookup error: /usr/bin/containerd: undefined symbol: seccomp_api_set
May 07 08:37:28 teddy-server systemd[1]: containerd.service: Main process exited, code=exited, status=127/n/a
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit containerd.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 127.
May 07 08:37:28 teddy-server systemd[1]: containerd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit containerd.service has entered the 'failed' state with result 'exit-code'.
May 07 08:37:28 teddy-server systemd[1]: docker.service: Main process exited, code=killed, status=15/TERM
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit docker.service has exited.
--
-- The process' exit code is 'killed' and its exit status is 15.
May 07 08:37:28 teddy-server systemd[1]: docker.service: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit docker.service has successfully entered the 'dead' state.
May 07 08:37:28 teddy-server systemd[1]: Stopped Docker Application Container Engine.
-- Subject: A stop job for unit docker.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit docker.service has finished.
Я нахожусь в тупике. Пожалуйста, помогите!
РЕДАКТИРОВАТЬ:
ldd / usr / bin / containerd | grep local
ничего не возвращает.
apt-cache policy libseccomp2
возвращает:
libseccomp2:
Installed: 2.4.1-0ubuntu0.19.10.3
Candidate: 2.4.1-0ubuntu0.19.10.3
Version table:
*** 2.4.1-0ubuntu0.19.10.3 500
500 http://archive.ubuntu.com/ubuntu eoan/main amd64 Packages
100 /var/lib/dpkg/status
apt-cache policy $ (dpkg -S / usr / bin / containerd)
возвращает:
containerd.io:
Installed: 1.2.13-1
Candidate: 1.2.13-1
Version table:
*** 1.2.13-1 500
500 https://download.docker.com/linux/ubuntu disco/stable amd64 Packages
100 /var/lib/dpkg/status
1.2.13-1 500
500 https://download.docker.com/linux/ubuntu eoan/nightly amd64 Packages
500 https://download.docker.com/linux/ubuntu eoan/stable amd64 Packages
1.2.12-1 500
500 https://download.docker.com/linux/ubuntu eoan/nightly amd64 Packages
1.2.11-2 500
500 https://download.docker.com/linux/ubuntu eoan/nightly amd64 Packages
1.2.11-1 500
500 https://download.docker.com/linux/ubuntu eoan/nightly amd64 Packages
1.2.10-3 500
500 https://download.docker.com/linux/ubuntu disco/stable amd64 Packages
1.2.10-2 500
500 https://download.docker.com/linux/ubuntu disco/stable amd64 Packages
1.2.6-3 500
500 https://download.docker.com/linux/ubuntu disco/stable amd64 Packages
1.2.5-1 500
500 https://download.docker.com/linux/ubuntu disco/stable amd64 Packages
N: Unable to locate package /usr/bin/containerd
dpkg - S / usr / bin / containerd
возвращает:
containerd.io: /usr/bin/containerd
grep -ir docker / etc / apt / --include = "*. List"
возвращает:
/etc/apt/sources.list:deb [arch=amd64] https://download.docker.com/linux/ubuntu eoan stable
/etc/apt/sources.list:# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu eoan stable
Я наконец решил эту проблему.
Сначала я искал связанные с libseccomp каталоги, используя
sudo find / -name '* libseccomp *'
Я обнаружил, что у меня установлены старые версии libseccomp в
/lib/x86_64-linux-gnu/libseccomp.so.2.3.1
и /lib/x86_64-linux-gnu/libseccomp.so.2
Я удалил обе эти директории и после перезагрузки я смог успешно установить Docker, используя официальную документацию.
Добавить ключ Docker PGP:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Сконфигурировать хранилище Docker apt:
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
Обновить APT:
sudo apt-get update
Если вы Если у вас установлены более старые версии Docker, удалите их:
sudo apt-get remove docker docker-engine docker.io
Установить Docker:
sudo apt-get install docker-ce
Тест:
sudo docker run hello-world
Запустить Docker:
sudo systemctl start docker
Включить Docker во время загрузки:
sudo systemctl enable docker
Разрешить некорневым пользователям использовать Docker:
sudo usermod -aG docker $USER
Теперь выйдите и войдите обратно