いろいろやってみるにっき

てきとーに生きている奴の日記

https化に伴い、表示できなくなっているリンクについて修復中。
2018年から遡って修正し、2015年分まで修正完了。


WSL2のOracle LinuxにDocker その2

Docker起動できなかった前回。

 

 

systemctlの実行でFailed to get D-Bus connection: Operation not permittedになる。このメッセージだけで検索するとDockerで起動したCentOSの情報ばかりである。そこでWSLも追加したらこちらがヒットした。

qiita.com

WSLにCentOS7を入れてsystemctlを実行したところ、「Failed to get D-Bus connection: Operation not permitted」が発生して実行できず、調べてもDocker関係の記事しか出てこなかったため、悪戦苦闘してしまいました。

オレと同じである。

 

手順はこちら。

$ sudo su -
$ mv /usr/bin/systemctl /usr/bin/systemctl.old
$ curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
$ chmod +x /usr/bin/systemctl

 

CentOSじゃなくOracle Linuxだけどやってみる。

[shigeo@EAGLEII shigeo-t]$ sudo su -
[sudo] password for shigeo:
[root@EAGLEII ~]# mv /usr/bin/systemctl /usr/bin/systemctl.old
[root@EAGLEII ~]# curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  284k  100  284k    0     0   577k      0 --:--:-- --:--:-- --:--:--  579k
[root@EAGLEII ~]# chmod +x /usr/bin/systemctl

 

一応問題なく実行できた。さてDocker起動。

[root@EAGLEII ~]# sudo systemctl start docker
ERROR:systemctl:Unit docker.service not found.

 

うーん。こういうのを見つけた。

qiita.com

まずは即解決したい方向けにどうやって解決させたかを書きます。
以下を参照しました。

https://www.slideshare.net/moriwaka/systemd/15

 

/etc/systemd/system/docker.service.d/docker.conf以下のファイルに記載されている-H fd://を消す

 

ディストリビューションは違うけど調べてみる。

[shigeo@EAGLEII shigeo-t]$ cd /etc/systemd/system/
[shigeo@EAGLEII system]$ ls -las
total 44
4 drwxr-xr-x 11 root root 4096 Feb  8 04:00 .
4 drwxr-xr-x  4 root root 4096 Feb  4 09:25 ..
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 basic.target.wants
0 lrwxrwxrwx  1 root root   40 Dec  2 08:12 default.target -> /usr/lib/systemd/system/graphical.target
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 default.target.wants
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 getty.target.wants
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 local-fs.target.wants
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 multi-user.target.wants
4 drwxr-xr-x  2 root root 4096 Feb  8 04:00 sockets.target.wants
4 drwxr-xr-x  2 root root 4096 Feb  8 04:00 sysinit.target.wants
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 systemd-remount-fs.service.wants
4 drwxr-xr-x  2 root root 4096 Dec  2 08:12 system-update.target.wants

そもそも/etc/systemd/system/docker.service.d/docker.confが無い。全く痕跡も無いってことは書き込んでいる先が違うはず。

 

我々はさらにアマゾンの奥地に向かう。

qiita.com

 

ファイルいっぱいあるけど、ここ(/usr/lib/systemd/system)には無い。

[shigeo@EAGLEII system]$ pwd
/usr/lib/systemd/system
[shigeo@EAGLEII system]$ ls d*
dbus-org.freedesktop.hostname1.service  dbus.service         dm-event.service          dracut-pre-pivot.service
dbus-org.freedesktop.import1.service    dbus.socket          dm-event.socket           dracut-pre-trigger.service
dbus-org.freedesktop.locale1.service    debug-shell.service  dracut-cmdline.service    dracut-pre-udev.service
dbus-org.freedesktop.login1.service     default.target       dracut-initqueue.service  dracut-shutdown.service
dbus-org.freedesktop.machine1.service   dev-hugepages.mount  dracut-mount.service
dbus-org.freedesktop.timedate1.service  dev-mqueue.mount     dracut-pre-mount.service

dbus.target.wants:

default.target.wants:

 

次は/lib/systemd/system。

[shigeo@EAGLEII system]$ pwd
/lib/systemd/system
[shigeo@EAGLEII system]$ ls d*
dbus-org.freedesktop.hostname1.service  dbus.service         dm-event.service          dracut-pre-pivot.service
dbus-org.freedesktop.import1.service    dbus.socket          dm-event.socket           dracut-pre-trigger.service
dbus-org.freedesktop.locale1.service    debug-shell.service  dracut-cmdline.service    dracut-pre-udev.service
dbus-org.freedesktop.login1.service     default.target       dracut-initqueue.service  dracut-shutdown.service
dbus-org.freedesktop.machine1.service   dev-hugepages.mount  dracut-mount.service
dbus-org.freedesktop.timedate1.service  dev-mqueue.mount     dracut-pre-mount.service

dbus.target.wants:

default.target.wants:

/usr/lib/systemd/systemと同じである。

 

さて、困った。あれっと思ってdockerコマンドを実行してみる。

[shigeo@EAGLEII /]$ docker
-bash: docker: command not found

 

おい、インストールできてないじゃん。そりゃdocker.service無いわ。前回のメッセージを見直す。

--> Finished Dependency Resolution
Error: Package: docker-ce-rootless-extras-20.10.12-3.el7.x86_64 (docker-ce-stable)
           Requires: slirp4netns >= 0.4
Error: Package: 3:docker-ce-20.10.12-3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
Error: Package: containerd.io-1.4.12-3.1.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
Error: Package: docker-ce-rootless-extras-20.10.12-3.el7.x86_64 (docker-ce-stable)
           Requires: fuse-overlayfs >= 0.7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

最後エラーだった。コマンド実行できたのでうまくいったもんだと思ってた。

 

前回は最新バージョンインストールコマンドだったので、今回はまずバージョンを調べてみる。

qiita.com

[shigeo@EAGLEII /]$ sudo yum list docker-ce.x86_64 --showduplicates | sort -r
[sudo] password for shigeo:
Loaded plugins: ovl, ulninfo
docker-ce.x86_64            3:20.10.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.12-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.11-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.10-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.15-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.14-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.13-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.12-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.11-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.10-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.2.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable
Available Packages

.centosが付いている奴のほうが良さそう。

 

例にならって最もバージョン番号が大きい

[shigeo@EAGLEII /]$ sudo yum install docker-ce-18.03.1.ce-1.el7.centos
Loaded plugins: ovl, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: libseccomp >= 2.3 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: iptables for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libcgroup for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libltdl.so.7()(64bit) for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libseccomp.so.2()(64bit) for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
---> Package iptables.x86_64 0:1.4.21-35.0.1.el7 will be installed
--> Processing Dependency: libnetfilter_conntrack.so.3()(64bit) for package: iptables-1.4.21-35.0.1.el7.x86_64
--> Processing Dependency: libnfnetlink.so.0()(64bit) for package: iptables-1.4.21-35.0.1.el7.x86_64
---> Package libcgroup.x86_64 0:0.41-21.el7 will be installed
---> Package libseccomp.x86_64 0:2.3.1-4.el7 will be installed
---> Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
---> Package libnetfilter_conntrack.x86_64 0:1.0.6-1.el7_3 will be installed
---> Package libnfnetlink.x86_64 0:1.0.1-4.el7 will be installed
--> Finished Dependency Resolution
Error: Package: docker-ce-18.03.1.ce-1.el7.centos.x86_64 (docker-ce-stable)
           Requires: pigz
Error: Package: docker-ce-18.03.1.ce-1.el7.centos.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2.9
 You could try using --skip-broken to work around the problem

 

やはりエラー出てる。--skip-brokenというメッセージに従ってみる。

[shigeo@EAGLEII /]$ sudo yum install docker-ce-18.03.1.ce-1.el7.centos --skip-broken
Loaded plugins: ovl, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: libseccomp >= 2.3 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: iptables for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libcgroup for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libltdl.so.7()(64bit) for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: libseccomp.so.2()(64bit) for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
---> Package iptables.x86_64 0:1.4.21-35.0.1.el7 will be installed
--> Processing Dependency: libnetfilter_conntrack.so.3()(64bit) for package: iptables-1.4.21-35.0.1.el7.x86_64
--> Processing Dependency: libnfnetlink.so.0()(64bit) for package: iptables-1.4.21-35.0.1.el7.x86_64
---> Package libcgroup.x86_64 0:0.41-21.el7 will be installed
---> Package libseccomp.x86_64 0:2.3.1-4.el7 will be installed
---> Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
--> Running transaction check
---> Package docker-ce.x86_64 0:18.03.1.ce-1.el7.centos will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
--> Processing Dependency: pigz for package: docker-ce-18.03.1.ce-1.el7.centos.x86_64
---> Package libnetfilter_conntrack.x86_64 0:1.0.6-1.el7_3 will be installed
---> Package libnfnetlink.x86_64 0:1.0.1-4.el7 will be installed
ol7_latest/x86_64/filelists_db                                                                   |  22 MB  00:00:02
docker-ce-stable/7Server/x86_64/filelists_db                                                     |  29 kB  00:00:00

Packages skipped because of dependency problems:
    docker-ce-18.03.1.ce-1.el7.centos.x86_64 from docker-ce-stable
    iptables-1.4.21-35.0.1.el7.x86_64 from ol7_latest
    libcgroup-0.41-21.el7.x86_64 from ol7_latest
    libnetfilter_conntrack-1.0.6-1.el7_3.x86_64 from ol7_latest
    libnfnetlink-1.0.1-4.el7.x86_64 from ol7_latest
    libseccomp-2.3.1-4.el7.x86_64 from ol7_latest
    libtool-ltdl-2.4.2-22.el7_3.x86_64 from ol7_latest
[shigeo@EAGLEII /]$ docker
-bash: docker: command not found

 

エラーは出なかったけど、やっぱりdockerコマンドが無いのでインストールできてない。Packages skipped because of dependency problems:    docker-ce-18.03.1.ce-1.el7.centos.x86_64 from docker-ce-stable って出てるし。

 

ということで前回はインストールできた、エラー出て起動できないと思って終わっていたが、今回インストールできないに戻ってしまった。systemctlは動くようになったけど。

 

長くなりそうなので今回はここまで。

わはは。