简体   繁体   English

在 redhat 8 上安装 docker-ce

[英]install docker-ce on redhat 8

I try to install docker-ce on redhat 8 but it failed我尝试在redhat 8上安装docker-ce但它失败了

first, I try首先,我尝试

# systemctl enable docker
Failed to enable unit: Unit file docker.service does not exist.

So, I want to install docker-ce for the daemon所以,我想为守护进程安装docker-ce

# yum install yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum repolist -v
# yum list docker-ce --showduplicates | sort -r
# yum install docker-ce

but in this step, I have got this :但在这一步中,我得到了这个:

# yum install docker-ce
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:02:58 ago on Fri 26 Jul 2019 02:11:48 PM UTC.
Error: 
 Problem: package docker-ce-3:19.03.1-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.el7.x86_64 is excluded
  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

I create a redhat account, but I have got this problem :我创建了一个 redhat 帐户,但遇到了这个问题:

# subscription-manager register --force
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: xxxxxxxxxxx
Password: 
The system has been registered with ID: 6c07b574-2601-4a84-90d4-a9dfdc499c2f
The registered system name is: ip-172-31-11-95.us-east-2.compute.internal
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dnf/repo.py", line 566, in load
    ret = self._repo.load()
  File "/usr/lib64/python3.6/site-packages/libdnf/repo.py", line 503, in load
    return _repo.Repo_load(self)
RuntimeError: Failed to synchronize cache for repo 'rhui-client-config-server-8'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cache.py", line 173, in update_check
    self._sync_with_server(uep, consumer_uuid)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cache.py", line 477, in _sync_with_server
    combined_profile = self.current_profile
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cache.py", line 430, in current_profile
    module_profile = get_profile('modulemd').collect()
  File "/usr/lib64/python3.6/site-packages/rhsm/profile.py", line 347, in get_profile
    profile = PROFILE_MAP[profile_type]()
  File "/usr/lib64/python3.6/site-packages/rhsm/profile.py", line 54, in __init__
    self.content = self.__generate()
  File "/usr/lib64/python3.6/site-packages/rhsm/profile.py", line 76, in __generate
    base.fill_sack()
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 400, in fill_sack
    self._add_repo_to_sack(r)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 135, in _add_repo_to_sack
    repo.load()
  File "/usr/lib/python3.6/site-packages/dnf/repo.py", line 568, in load
    raise dnf.exceptions.RepoError(str(e))
dnf.exceptions.RepoError: Failed to synchronize cache for repo 'rhui-client-config-server-8'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/sbin/subscription-manager", line 11, in <module>
    load_entry_point('subscription-manager==1.23.8', 'console_scripts', 'subscription-manager')()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/scripts/subscription_manager.py", line 85, in main
    return managercli.ManagerCLI().main()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 2918, in main
    ret = CLI.main(self)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cli.py", line 183, in main
    return cmd.main()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 506, in main
    return_code = self._do_command()
  File "/usr/lib64/python3.6/site-packages/subscription_manager/managercli.py", line 1368, in _do_command
    profile_mgr.update_check(self.cp, consumer['uuid'], True)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cache.py", line 457, in update_check
    return CacheManager.update_check(self, uep, consumer_uuid, force)
  File "/usr/lib64/python3.6/site-packages/subscription_manager/cache.py", line 183, in update_check
    raise Exception(_("Error updating system data on the server, see /var/log/rhsm/rhsm.log "
Exception: Error updating system data on the server, see /var/log/rhsm/rhsm.log for more details.

Disabling the container-tools module (installed by default) resolves the conflict: dnf module disable container-tools禁用container-tools模块(默认安装)解决冲突: dnf module disable container-tools

However, you first need to install the container-selinux dependency, which is provided by the same module:但是,您首先需要安装由同一个模块提供的container-selinux依赖项:

[root@centos8-2gb-hel1-1 ~]# yum install container-selinux
...
[root@centos8-2gb-hel1-1 ~]# yum module disable container-tools
Last metadata expiration check: 0:05:02 ago on Mon Feb 10 16:31:17 2020.
Dependencies resolved.
======================================================================================================================
 Package                     Architecture               Version                     Repository                   Size
======================================================================================================================
Disabling modules:
 container-tools

Transaction Summary
======================================================================================================================

Is this ok [y/N]: y
Complete!

The docker-ce package can now be installed normally with the previously installed container-selinux version and the new containerd.io depdency: docker-ce包现在可以使用之前安装的container-selinux版本和新的containerd.io依赖正常安装:

[root@centos8-2gb-hel1-1 ~]# yum install docker-ce
Last metadata expiration check: 0:06:26 ago on Mon Feb 10 16:31:17 2020.
Dependencies resolved.
======================================================================================================================
 Package                           Arch        Version                                    Repository             Size
======================================================================================================================
Installing:
 docker-ce                         x86_64      3:19.03.5-3.el7                            docker-ce-stable       24 M
Installing dependencies:
 libcgroup                         x86_64      0.41-19.el8                                BaseOS                 70 k
 tar                               x86_64      2:1.30-4.el8                               BaseOS                838 k
 containerd.io                     x86_64      1.2.10-3.2.el7                             docker-ce-stable       23 M
 docker-ce-cli                     x86_64      1:19.03.5-3.el7                            docker-ce-stable       39 M

Transaction Summary
======================================================================================================================
Install   5 Packages

Total download size: 108 M
Is this ok [y/N]:

RHEL/CentOS 8 excluding the containerd.io package is related to the runc provide conflicting with the runc package from the container-tools module: https://bugzilla.redhat.com/show_bug.cgi?id=1756473 RHEL/CentOS 8 不包括containerd.io包与来自container-tools模块的 runc 包冲突的runc提供: https ://bugzilla.redhat.com/show_bug.cgi?id=1756473

[root@centos8-2gb-hel1-1 ~]# yum provides runc
Last metadata expiration check: 0:07:21 ago on Mon Feb 10 16:31:17 2020.
...

containerd.io-1.2.10-3.2.el7.x86_64 : An industry-standard container runtime
Repo        : docker-ce-stable
Matched from:
Provide    : runc

runc-1.0.0-60.rc8.module_el8.1.0+237+63e26edc.x86_64 : CLI for running Open Containers
Repo        : AppStream
Matched from:
Provide    : runc = 1.0.0-60.rc8.module_el8.1.0+237+63e26edc

yum install docker-ce --no-best 对我有用(安装:docker-ce-3:18.09.1-3.el7.x86_64 和跳过:docker-ce-3:19.03.1-3.el7.x86_64)

There is a dependency issue in Centos 8 which references the containerd from Centos 7 . Centos 8存在一个依赖问题,它引用了Centos 7containerd Just install the containerd package manually, and it will work只需手动安装containerd包,它就会工作

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm

My guess, due to a missing subscription you cannot download packages from repositories the docker-ce package needs.我的猜测是,由于缺少订阅,您无法从 docker-ce 软件包所需的存储库下载软件包。 So first register for a development account with redhat, then subscribe your host using the subscription Manager (remember, no production usage allowed then) and then retry the installation.因此,首先在 redhat 上注册一个开发帐户,然后使用订阅管理器订阅您的主机(请记住,当时不允许生产使用),然后重试安装。 Edit: Here are the subscription commands编辑:这是订阅命令

subscription-manager register --username <yourname> --password <pw>
subscription-manager role --set="Red Hat Enterprise Linux Server"
subscription-manager service-level --set="Self-Support"
subscription-manager usage --set="Development/Test"
subscription-manager attach

Edit: sorry i answered too fast.编辑:对不起,我回答得太快了。 Just tried on a new rhel8.刚试了一个新的rhel8。 docker-ce-18.06.3.ce-3.el7 is the most current Version for rhel 8 and installs fine docker-ce-18.06.3.ce-3.el7 是 rhel 8 的最新版本并且安装良好

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM