#author("2022-05-25T11:44:55+09:00","default:honma","honma")
#author("2022-05-25T14:02:31+09:00","default:honma","honma")
* Dockerで開発環境 [#rcafcf51]

[[Docker Engine インストール(Debian 向け):https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/debian/]]を参考に。

** Dockerの準備 [#p7737d70]

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

** Dockerイメージの作成 [#f18eae1b]

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

** Dockerの export/import [#qf0b401f]
** Dockerイメージの save/load [#g5ecb731]

コンテナを停止する。

 $ sudo docker stop developer-env

コンテナをアーカイブしてexportする。
Dockerイメージをアーカイブしてsaveする。

 $ sudo docker export developer-env | gzip -c > developer-env.tgz
 $ sudo docker save debian:bullseye-ja | gzip > developer-env.tgz

コンテナをimportする。
Dockerイメージをloadする。

 $ sudo docker import developer-env.tgz
 $ sudo docker load < developer-env.tgz

または、
Dockerイメージの実行。

 $ sudo docker import http://example.com/exampleimage.tgz
 $ sudo docker run -d -it --name developer-env debian:bullseye-ja

のような使い方もできる。
実行中のコンテナ内でコマンドを実行する。

 $ sudo docker exec -it developer-env bash
 developer@66f0ee8dd742:~$


~
#htmlinsert(amazon_pc.html);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS