- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!Docker
ぱっと使えるようになっておきたいなあ,と,普段使いにしてみようかな.
コンテナは
https://docs.docker.jp/develop/develop-images/dockerfile_best-practices.html
Dockerfile で定義したイメージによって生成するコンテナは、
可能な限り一時的( エフェメラルephemeral )であるべきです。
一時的が意味するのは、コンテナとは停止および破棄可能であり、
その後も極めて最小限のセットアップと設定により、
再構築や置き換えが可能だからです。
だそうなので,普段使いにするにしてもぶくぶく太らせるのも,なにか違うようだけど.
ディレクトリ構成
├── docker-compose.yml
├── container/
│ ├── Dockerfile
│ └── install.sh
└── work/
とか用意して
UID=$(id -u) GID=$(id -g) docker compose build
docker compose up -d
で起動.
docker compose exec container bash
でログインして,あれこれ.
docker compose donw
で片付け.
Dokerfileとdocker-compose.yml,install.shを以下のように.
Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y sudo
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN chmod 755 /root/install.sh
RUN /root/install.sh
ARG UID
ARG GID
ENV USER=user \
GROUP=user \
HOME=/home/user
RUN groupadd $GROUP -g ${GID:-1000} && \
useradd -g $GROUP -G sudo -u ${UID:-1000} -m -s /bin/bash $USER && \
echo 'user:password' | chpasswd && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER $USER
WORKDIR $HOME
docker-compose.yml
services:
container:
hostname: container
build:
context: ./container
dockerfile: Dockerfile
args:
- UID=${UID- }
- GID=${GID- }
volumes:
- ./work:/home/user
stdin_open: true
tty: true
networks:
network: {}
networks:
network:
driver: bridge
install.sh
apt update