lisz-works

プログラミングと興味を貴方に

Dockerをローカルの別PCに移植する手順

【スポンサーリンク】

Docker

業務でUbuntuのDockerの環境構築をされたPCが合ったのですが、別PCにDocker環境を構築して移植する必要がありました。

今回はUbuntuのDocker環境を、別のUbuntuに移植する手順についてです。

移植先にDockerのインストール

まずはDocker自体の準備です。

rootにしなくても、sudoで実行すればOKです。

$ sudo su -
# apt install apt-transport-https ca-certificates curl software-properties-common
  ... install log ...
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  ... log ...
# apt update
# apt install docker-ce

実質5回コマンドを実行すれば完了です。

Docker HelloWorld

Hello Worldでインストール確認をします。

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

ちゃんと実行されましたね。

バージョンチェック

インストールされたバージョンはこれでした。

# docker version
Client: Docker Engine - Community
 Version:           19.03.9
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9d988398e7
 Built:             Fri May 15 00:25:18 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.9
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       9d988398e7
  Built:            Fri May 15 00:23:50 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Dockerからコンテナをエクスポート

移植元で作業する。

$ cd <任意のパス>
$ sudo su -
# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
hello-world             latest              bf756fb1ae65        4 months ago        13.3kB
# docker save -o image.tar hello-world

これでカレントディレクトリに、image.tarが作成されます。

image.tarを何かしらの方法(外部ストレージやscpコマンドなど)で展開するPCに移動する。

外部ストレージを使うなら、そこに移動して実行しちゃうのが手っ取り早いですね。

Dockerにコンテナをインポート

移植先で作業する。

$ sudo su -
# docker load -i image.tar

指定するtarファイルは、フルパスにするなりファイルのあるところまで移動するなりしましょう。

docker imagesでイメージが登録されていればOK!

参考

コチラを参考にしました。ありがとうございました!

qiita.com

あとがき

Dockerをローカルの別PCに移植する手順でした!

Docker歴浅すぎて、Dockerムズカシソウ……って思ってたんですが、意外とあっさりできるんですね……