2019年9月28日土曜日

MX Linux にdockerインストール

https://docs.docker.com/install/linux/docker-ce/debian/
ここに従ってインストール

docker-ceのリポジトリからインストール



docker-ceを入れるため既に入っているdockerを削除&インデックス更新
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
download.docker.comから鍵とリポジトリを登録するためのパッケージ
※add-apt-repositoryを使わないのでcurlだけでよいかも?
sudo apt-get install apt-transport-https ca-certificates \
   curl gnupg2 software-properties-common
鍵取得
sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
リポジトリ追加
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable"
失敗する(2019/11/18追記 Debian Stable 10 (Buster)では失敗しない)
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 95, in 
    sp = SoftwareProperties(options=options)
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 109, in __init__
    self.reload_sourceslist()
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 599, in reload_sourceslist
    self.distro.get_sources(self.sourceslist)    
  File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 93, in get_sources
    (self.id, self.codename))
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for MX/Continuum
・原因
/usr/lib/python3/dist-packages/aptsources/distro.pyの471行目
    471 def _lsb_release():
    472     """Call lsb_release --idrc and return a mapping."""
    473     from subprocess import Popen, PIPE
    474     import errno
    475     result = {'Codename': 'sid', 'Distributor ID': 'Debian',
    476               'Description': 'Debian GNU/Linux unstable (sid)',
    477               'Release': 'unstable'}
    478     try:
    479         out = Popen(['lsb_release', '-idrc'], stdout=PIPE).communicate()[0]
    480         # Convert to unicode string, needed for Python 3.1
    481         out = out.decode("utf-8")
    482         result.update(l.split(":\t") for l in out.split("\n") if ':\t' in l)
    483     except OSError as exc:
    484         if exc.errno != errno.ENOENT:
    485             logging.warning('lsb_release failed, using defaults:' % exc)
    486     return result
lsb_releaseの結果がMX Linuxでは以下になる。
$ lsb_release -idrc
Distributor ID: MX
Description: MX 18.3 Continuum
Release: 18.3
Codename: Continuum
Codenameの「Continuum」は以下の場所に存在しない
https://download.docker.com/linux/debian/dists/

インストールしたMX Linuxについて
https://mxlinux.org/current-release-features/
ベースは「Debian Stable 9.6 (Stretch)」

(2019/11/18追記)
最新の「Debian Stable 10 (Buster)」では以下の結果になるため、Codenameによる問題は発生しない。
$ lsb_release -idrc
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

WARNING:root:could not open file '/etc/apt/sources.list'
MX Linuxだと以下のディレクトリに複数配置されている
/etc/apt/sources.list.d/
1.真似して /etc/apt/sources.list.d/docker.list を作成
# docker-ce Repos
deb [arch=amd64] https://download.docker.com/linux/debian/ stretch main stable
2./etc/lsb-releaseを書き換えて lsb_release の結果を変更する。
Debian/stretchになるように変更
$ cat /etc/lsb-release 
PRETTY_NAME="MX 18.3 Continuum"
#DISTRIB_ID=MX
DISTRIB_RELEASE=18.3
#DISTRIB_CODENAME=Continuum2
DISTRIB_DESCRIPTION="MX 18.3 Continuum"
DISTRIB_ID=Debian
DISTRIB_CODENAME=stretch
$ lsb_release -idrc
Distributor ID: Debian
Description: MX 18.3 Continuum
Release: 18.3
Codename: stretch
※/etc/apt/sources.listのワーニングは出るが、作成されている。
$ cat /etc/apt/sources.list
deb [arch=amd64] https://download.docker.com/linux/debian stretch stable
パッケージリストを更新してdocker-ceをインストール
sudo apt-get update
sudo apt-get install docker-ce
docker-composeも入れておく
sudo apt-get install docker-compose
hello-worldで確認
sudo docker run hello-world
sudo docker 〜とsudoを入力するのが煩わしいので 今のユーザをdockerに追加
sudo usermod -aG docker your-user
※ログアウト必要

インストールしたバージョン「Debian Stable 9.6 (Stretch)」
$ sudo docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfca03
 Built:             Thu Aug 29 05:29:49 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfca03
  Built:            Thu Aug 29 05:28:23 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
$ sudo docker-compose version
docker-compose version 1.8.0, build unknown
docker-py version: 1.9.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.1.0k  28 May 2019
(2019/10/14追記)
version:3に対応していないためアップデート https://docs.docker.com/compose/install/
$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018
(2019/11/18追記)
「Debian Stable 10 (Buster)」
$ sudo docker version
[sudo] goto のパスワード:
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:25:38 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:24:09 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
$ sudo docker-compose version
docker-compose version 1.21.0, build unknown
docker-py version: 3.4.1
CPython version: 3.7.3
OpenSSL version: OpenSSL 1.1.1d  10 Sep 2019
docker-composeはディストリのリポジトリをそのまま使用

0 件のコメント:

コメントを投稿