Orange Pi 3 Docker-CE (Alpine Linux)

Orange Pi 3(ARM64/AARCH64)もraspbian同様Docker-CEを簡単にインストールできるようです。
https://tomono.tokyo/2019/04/22/7578/

目的はコンテナを作成するにあたりOSの学習用またdockerの練習用として気軽に試せる環境を作成しようと思います。
今回はまずalpineコンテナを作成してみます。

ホスト

$ uname -a
Linux orangepi3 5.1.15-sunxi64 #5.90.190703 SMP Thu Jul 4 00:31:21 CEST 2019 aarch64 GNU/Linux

Docker-CEのインストール

$ curl -fsSL get.docker.com -o get-docker.sh

ホームディレクトリで実行するとスクリプト(get-docker.sh)がダウンロードされます。

$ sudo sh get-docker.sh
----
Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:21 2019
 OS/Arch:           linux/arm64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:23:19 2019
  OS/Arch:          linux/arm64
  Experimental:     false
---

ユーザー権限で実行する

sudo usermod -aG docker your-user

Alpine Linux

docker hubからalpineをpull

$ docker pull alpine
$ docker image ls
alpine     latest       e67514d6f5dd        2 weeks ago         5.33MB

コンテナ作成 –name alpine3(適当)

$ docker container run --name alpine3 -it alpine /bin/sh
/ # ls
bin   dev   etc   home   lib   media  mnt   opt   proc   root   run   sbin   srv   sys   tmp   usr   var

exitして再度コンテナに入る

/ # exit
$ docker container start -i alpine3

リポジトリを追加

# vi /etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/edge/community/

アップデート、ツールをadd 日付はJST

# apk update && apk upgrade
# apk add bash tcsh tzdata openrc bind-tools
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# date
Sat Jul  6 20:17:18 JST 2019

python3のインストール
python3をaddしてpythonにリンク(python3.7)

# apk add python3 file
# cd /usr/bin
# ln -s python3.7 python
# ls -la python*
lrwxrwxrwx    1 root     root             9 Jul  5 16:14 python -> python3.7*
lrwxrwxrwx    1 root     root             9 Jul  5 16:10 python3 -> python3.7*
-rwxr-xr-x    2 root     root          5744 May  1 23:04 python3.7*
-rwxr-xr-x    2 root     root          5744 May  1 23:04 python3.7m*
# python --version
Python 3.7.3

rangerの導入

# wget https://ranger.github.io/ranger-stable.tar.gz
# tar -xvf ranger-stable.tar.gz
# cd ranger-1.9.2
# ./ranger.py

# ./ranger.pyで実行 終了はq
rangerは特にインストールしないで展開したファイルから実行します。
デフォルトの設定ファイルは展開したファイルの中にあります。
正規にインストールした場合と同じように使えます。

ホストから設定ファイル(~/.config/ranger)をコピー

$ docker cp ~/.config/ranger alpine3:/root/.config

ホストから.bashrcと.cshrcをコピー

$ docker cp .bashrc alpine3:/root
$ docker cp .cshrc alpine3:/root

.bashrcと.cshrcにaliasを設定

~ # vi ~/.bashrc
alias ranger='~/ranger-1.9.2/ranger.py'
# vi ~/.cshrc
alias ranger  ~/ranger-1.9.2/ranger.py
alias r       ~/ranger-1.9.2/ranger.py
# exit

alpine3をコミット(イメージ作成)コンテナalpine3を削除

$ docker container commit alpine3 alpine3-img
$ docker container rm alpine3

作成したイメージ(alpine3-img)から新たにコンテナalpineを作成
当サイトではメインのshellをtcshで作成しています。(.cshrcは必須)

$ docker run --name alpine -it alpine3-img /bin/bash

exitして再度スタート

$ docker container start -i alpine

イメージサイズはOS学習用なのであまり気にしないことにします。

$ docker image ls
alpine3-img         latest     9bfd90814cbe        30 hours ago        86.3MB
alpine              latest     e67514d6f5dd        2 weeks ago         5.33MB


rangerを起動
残念ながらテキストのオートプレビューはできないようです。
但し”i”キーでプレビューは可能です。
ディレクトリranger-1.9.2は.config以下に移動しています。aliasも変更

ホスト(OrangePi3)から使いやすくするため起動ボタンを作成しています。

# Button alpine
def alpine():
    subprocess.run("xterm -e docker container start -i alpine &", shell=True)
icon1 = PhotoImage(file='~/.icons/64x64/alpine.png')
button1 = ttk.Button(
    frame1,
    image=icon1,
    command=alpine)
button1.grid(row=1,column=1)

CentOSとdebianは今のところボタンだけですが次はCentOSにチャレンジしてみようと思います。