DockerでUbuntuを使ってみたメモ。

最初にDockerをインストールしておく。

# Dockerのインストール
brew install --cask docker

Ubuntuイメージを検索する。

docker search ubuntu

Ubuntu コンソール *

普通にDockerでUbuntuを使う場合:

docker pull ubuntu
docker run -it ubuntu

ログインしたら、aptでいつものようにインストール可能。

apt update
apt install -y vim git
exit # コンテナを抜ける

コンテナの一覧を表示など

docker ps -l # 最新のコンテナを表示
docker ps -a # 全てのコンテナを表示

docker start xxx # 停止したコンテナを再開
docker attach xxx # 稼働中のコンテナに入る
docker rm xxx # コンテナを終了

docker images # イメージ一覧を表示
docker rmi xxx # イメージを削除
docker commit -m "何をしたか" -a "作者" コンテナID リポジトリ/イメージ名 

ローカルのファイルシステムをマウントして起動。

# ユーザーフォルダを /mnt で
docker run -v ~/docs:/root/docs -it IMAGE bash

なお、複数のディレクトリを指定可能なので、いつもの環境で作業したければ、.sshをマウントしておく。そうすれば、いつものSSHキーでGitHubやその他のリポジトリを操作可能。

# よく使うディレクトリをマウント
docker run \
  --rm \
  -v ~/.ssh:/root/.ssh \
  -v ~/repos:/root/repos \
  -it ubuntu bash

なお「--rm」オプションをつければ、作業終了後コンテナが消えるので環境を汚すことがないので便利。--rmをつけない場合、docker rmで明示的に削除する。

Dockerfileでスマートにイメージを管理 *

Dockerfileで必要なアプリだけaptしておいたベースを1つ作っておいて、用途に合わせて使い分けが可能。

以下のようなコマンドでイメージをビルドできる。

docker build -t イメージ名/タグ名:latest .

Ubuntu + lxde + VNC + ブラウザ *

M1 MacでDockerでUbuntuのlxdeを動かす方法のメモ。
DockerでGUI、面白かった。たぶん使わないけど、一応備忘録としてメモ。

Dockerコンテナを取得。

docker pull dorowu/ubuntu-desktop-lxde-vnc
docker run --name ubuntu_desktop -p 8888:80 dorowu/ubuntu-desktop-lxde-vnc

ブラウザ「localhost:8888」にlxdeのデスクトップ画面が表示される。ターミナルでCtrl+cを押すと終了する。

Dockerをx86-64モードで実行 *

Dockerはx86-64のエミュレーションモードでも動くので便利。もちろん、動作は遅くなるけれど、x86-64以外は動かないというライブラリを動かすのに便利。

docker runを行う際に、--platform=linux/amd64のオプションを付与して起動を行う。

docker run --platform=linux/amd64 ubuntu

また、Dockerfileでビルドする場合は、以下のように、「--platform」オプションを指定する。

FROM --platform=linux/x86-64 ubuntu
...
RUN apt update && apt install wget
..