Ubuntu 安装 Docker - Dependency failed for Docker Application Container

时间:2025-03-24 15:27:34

Docker 安装

由于 apt 官方库里的 Docker 版本可能比较旧,所以先卸载可能存在的旧版本:

sudo apt-get remove docker docker-engine docker-ce 

在 Ubuntu 16.04 环境下可参考如下链接进行安装

/bingzhongdehuoyan/article/details/79411479

/zyrblog/p/

也可以直接按照如下方法安装:

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL /docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] /docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

安装可以参考官网 /engine/install/ubuntu/

/linux/ubuntu/dists/focal/pool/stable/amd64/

依次选择

  • containerd.io_1.4.3-1_amd64.deb
  • docker-ce-cli_20.10.73-0ubuntu-xenial_amd64.deb
  • docker-ce_20.10.73-0ubuntu-xenial_amd64.deb

通过下面命令可以查看本机支持的 Docker 版本

sudo apt-cache madison docker-ce
sudo apt install docker-ce=17.03.0~ce-0~ubuntu-xenial

安装过程中遇到问题

在安装 Docker 的过程中,运行以下命令

sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu

提示由于依赖项问题导致安装失败

..
..
dpkg: docker-ce-cli: dependency problems, but removing anyway as you requested:
 docker-ce depends on docker-ce-cli.
..
..

详细信息如下:

~/software$ sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
   linux-headers-4.4.0-87 linux-headers-4.4.0-87-generic linux-image-4.4.0-87-generic linux-image-extra-4.4.0-87-generic
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  docker-ce-cli
The following packages will be DOWNGRADED:
  docker-ce
0 upgraded, 0 newly installed, 1 downgraded, 1 to remove and 163 not upgraded.
Need to get 40.1 MB of archives.
After this operation, 43.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 /linux/ubuntu xenial/stable amd64 docker-ce amd64 18.06.0~ce~3-0~ubuntu [40.1 MB]
Fetched 40.1 MB in 5s (6,935 kB/s)   
dpkg: docker-ce-cli: dependency problems, but removing anyway as you requested:
 docker-ce depends on docker-ce-cli.

(Reading database ... 136047 files and directories currently installed.)
Removing docker-ce-cli (5:18.09.0~3-0~ubuntu-xenial) ...
Processing triggers for man-db (2.7.5-1) ...
dpkg: warning: downgrading docker-ce from 5:18.09.0~3-0~ubuntu-xenial to 18.06.0~ce~3-0~ubuntu
(Reading database ... 135857 files and directories currently installed.)
Preparing to unpack .../docker-ce_18.06.0~ce~3-0~ubuntu_amd64.deb ...
Unpacking docker-ce (18.06.0~ce~3-0~ubuntu) over (5:18.09.0~3-0~ubuntu-xenial) ...
Processing triggers for systemd (229-4ubuntu21.2) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up docker-ce (18.06.0~ce~3-0~ubuntu) ...
A dependency job for  failed. See 'journalctl -xe' for details.
: initscript docker, action "start" failed.
●  - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-12-01 22:20:08 CST; 5min ago
     Docs: 
 Main PID: 32613 (dockerd)
   CGroup: //
           └─32613 /usr/bin/dockerd -H unix://

Dec 01 22:20:07 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:07.671708387+08:00" level=warning msg="Your kernel does not support...runtime"
Dec 01 22:20:07 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:07.672189795+08:00" level=info msg="Loading containers: start."
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:08.055751832+08:00" level=info msg="Default bridge (docker0) is ass...address"
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:08.100131634+08:00" level=info msg="Loading containers: done."
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:08.120069347+08:00" level=info msg="Docker daemon" commit=4d60db4 g...=18.09.0
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:08.120538965+08:00" level=info msg="Daemon has completed initialization"
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ systemd[1]: Started Docker Application Container Engine.
Dec 01 22:20:08 iZm5egn5zptnov4j3oxh4fZ dockerd[32613]: time="2018-12-01T22:20:08.147198090+08:00" level=info msg="API listen on /var/run/"
Dec 01 22:25:16 iZm5egn5zptnov4j3oxh4fZ systemd[1]: Dependency failed for Docker Application Container Engine.
Dec 01 22:25:16 iZm5egn5zptnov4j3oxh4fZ systemd[1]: : Job /start failed with result 'dependency'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package docker-ce (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for systemd (229-4ubuntu21.2) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
 docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方法

安装相应的依赖项解决该问题。

sudo apt-get install docker-ce-cli

启动 Docker 服务和开机自启动命令

  • 启动 Docker 服务

安装包已经为我们在 Linux 系统中注册了一个 Docker 服务,所以我们不需要直接启动 docker daemon 对应的 dockerd 这个程序,而是直接启动 Docker 服务即可。

sudo systemctl start docker
  • 实现 Docker 服务开机自启动
sudo systemctl enable docker

安装指定版本的 Docker

sudo apt-cache madison docker-ce   # 搜索与系统匹配的版本
sudo apt-get install docker-ce=<version_string>