Docker Engine インストール(Debian 向け)を参考に。
aptのパッケージインデックスを更新するための準備。
$ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
Docker の公式 GPG 鍵を追加する。
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
安定版(stable)リポジトリをセットアップする。
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engine をインストール。
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Dockerfileの作成、
$ mkdir developer-env $ cd developer-env $ nano Dockerfile
中身はこんな感じ
FROM debian:bullseye ARG USERNAME=developer ARG GROUPNAME=developer ARG UID=1000 ARG GID=1000 RUN groupadd -g $GID $GROUPNAME && \ useradd -m -s /bin/bash -u $UID -g $GID $USERNAME # sudoを追加してルートになる RUN apt-get update && apt-get install -y sudo ARG PASSWORD=${USERNAME} RUN echo "${USERNAME}:${PASSWORD}" | chpasswd && \ echo "${USERNAME} ALL=(ALL) ALL" >> /etc/sudoers.d/${USERNAME} && \ chmod 0440 /etc/sudoers.d/${USERNAME} # 日本語関連のパーケージをインストール RUN apt-get install -y locales # ja_JP.UTF-8の行のコメントを解除 RUN sed -i -E 's/# (ja_JP.UTF-8)/\1/' /etc/locale.gen RUN locale-gen RUN update-locale LANG=ja_JP.UTF-8 # ロケールを日本語に設定する RUN update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" && \ echo "export LANG=ja_JP.UTF-8" >> /home/$USERNAME/.bashrc USER $USERNAME WORKDIR /home/$USERNAME/
Dockerイメージの作成。
$ sudo docker build -t debian:bullseye-ja -f Dockerfile .
Dockerイメージの実行。
$ sudo docker run -d -it --name developer-env debian:bullseye-ja
実行中のコンテナ内でコマンドを実行する。
$ sudo docker exec -it developer-env bash
コンテナを停止する。
$ sudo docker stop developer-env
Dockerイメージをアーカイブしてsaveする。
$ sudo docker save debian:bullseye-ja | gzip > developer-env.tgz
Dockerイメージをloadする。
$ sudo docker load < developer-env.tgz
Dockerイメージの実行。
$ sudo docker run -d -it --name developer-env debian:bullseye-ja
実行中のコンテナ内でコマンドを実行する。
$ sudo docker exec -it developer-env bash developer@66f0ee8dd742:~$