0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[自分用メモ]Dockerイメージを他サーバに持ち込み、コンテナ構築

Last updated at Posted at 2025-02-10

Dockerイメージの作成~他サーバでインポート

作業手順

  1. rootユーザに移行

  2. Dockerイメージをtar化

    docker save <イメージ名> -o <tarファイル名>
    

    ※ここでは、AnsibleをインストールしたRocky Linux 9のイメージを扱うものとする

  3. tarファイルの所有者を変更

    sudo chown vboxuser:vboxuser <tarファイル名>
    
  4. scpなどでtarファイルを他サーバに転送

  5. 転送先サーバーでdocker loadコマンドでtarファイルからイメージをインポート

    docker load -i <tarファイル名>
    
  6. イメージが作成されているか確認

    docker images
    

    以下のように、作成したDockerイメージが表示されればOK

    [root@vbox ansibleDockerFile]# docker images
    REPOSITORY                TAG       IMAGE ID       CREATED       SIZE
    ansible-container-image   latest    c66c49dd6431   9 hours ago   921MB
    

Dockerコンテナの構築

構築手順

  1. コンテナを起動する

    Rocky Linux 9 の Docker イメージは、デフォルトで /bin/bash を実行するようにはなっていないため、コンテナ起動時に何も実行するコマンドを指定しないと、すぐに終了する。

    そのため、以下のコマンドでコンテナを起動する

    docker run -d --name ansible-container --net=host ansible-container-image sleep infinity
    

--net=hostで、ホストのネットワークを使うよう指定できる。
sleep infinity は、コンテナ内で無限にスリープし続けるコマンドである。これによりコンテナが起動し続け、docker ps で確認できるようになる。

  1. コンテナの起動状況を確認

    以下コマンドを実行

    docker ps
    

    結果、以下のようにansible-containerが表示されれば、コンテナの構築に成功している

    CONTAINER ID   IMAGE                     COMMAND            CREATED         STATUS         PORTS     NAMES
    44876981f384   ansible-container-image   "sleep infinity"   7 seconds ago   Up 7 seconds             ansible-container
    
  2. コンテナにログインする

    docker exec -it ansible-container bash
    
  3. Ansibleがインストールされているか確認

    ansible --version
    

    以下のようにAnsibleバージョンが表示されればOK

    ansible [core 2.14.17]
      config file = /etc/ansible/ansible.cfg
      configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
      ansible python module location = /usr/lib/python3.9/site-packages/ansible
      ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
      executable location = /usr/bin/ansible
      python version = 3.9.21 (main, Dec  5 2024, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-2)] (/usr/bin/python3)
      jinja version = 3.1.2
      libyaml = True
    
  4. コンテナからログアウト

    exit
    
  5. 持ち込んだtarファイルを削除

    rm <tarファイル名>
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?