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?

LXCコンテナ内でのDocker実行環境の作成

0
Posted at

dockerが動いていると仮想マシン系のbridge上手く機能しなくなるので共存の選択肢として

LXCのインストール

$ sudo apt install lxc

ブリッジの作成
ここでは省略cockpit経由で作ると楽

ネットワークへのブリッジの割り当てここではbr0という名前でブリッジネットワークがある想定

/etc/lxc/default.conf
-lxc.net.0.link = lxcbr0
+lxc.net.0.link = br0

コンテナの作成、起動、接続

$ sudo lxc-create -t download -n docker -- -d ubuntu -r noble -a amd64
$ sudo lxc-start -n docker
$ sudo lxc-attach -n docker

lxc-attachで接続するとパスワード認証なしでrootとしてログインできる
この辺りはlxdやincusのweb-uiのterminalタブで接続するのと同じ勝手
lxc-consoleで接続した場合ログイン認証が必要な上、ログインを中止して抜ける場合はcrtl+a → q (qを押す時はctrlを外す)という操作が必要になる
lxc-start, lxc-attachをまとめて実行するlxc-executeというコマンドもあるがこれ場合外部ネットワークに繋がらない

コンテナの停止、削除

$ sudo lxc-stop -n docker
$ sudo lxc-destroy -n docker

IPの確認(想定しているネットワークのIPが割り当てられているか確認)

# ip a

ユーザー関連設定(lxc-attachでコンテナに入った状態から)

既存のユーザーを利用する場合

# passwd ubuntu

表示に従ってパスワードを二回入力する

新規にユーザーを作成する場合(username: docker)

# useradd docker
# passwd docker
# mkdir /home/docker
# chmod -R 750 /home/docker
# chown -R docker:docker /home/docker
# usermod -aG sudo docker
# chsh -s /bin/bash docker

sudo時の認証パス(面倒な場合これを設定していれば楽)

# visudo

末尾に以下を追加

ubuntu  ALL=NOPASSWD: ALL
docker  ALL=NOPASSWD: ALL

Dockerのインストール

Ubuntu で Docker のインストールに従ってapt installの手前まで実施

LXCではcontainerd.ioのバージョンが1.7.28-1以前でないといけないのでdocker-ceのバージョンも合わせて以下の様にインストール

# apt install docker-ce-cli docker-buildx-plugin docker-compose-plugin
# apt install docker-ce=5:29.5.2-1~ubuntu.24.04~noble containerd.io=1.7.28-1~ubuntu.24.04~noble
'''
更新されないようにバージョンを固定しておく
'''
# apt-mark hold containerd.io docker-ce

実行確認

新規ユーザーで入って確認

# su docker
$ docker run hello-world

既存ユーザーを使う場合

# usermod -aG docker ubuntu
# su docker
$ docker run hello-world

containerd.ioバージョンが1.7.28以降だとこれらの実行時に失敗する

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?