背景
現在Dockerを勉強中です
Dockerfileに作りたいイメージを書いて、それをdocker-compose.ymlで読み込んで
$docker compose up -d
で実行しています
しかし、Dockerfileに書く初期実行コマンドを書くのに苦戦中、、、
どのコマンドが上手くいって、どのコマンドが失敗するかわからーん
そこで最初にコンテナを立ち上げて、その中でコマンドを試してからDockerfileに書くことにしました
Dockerfileだけでコンテナを立ち上げる方法
Dockerfileを用意します
今回はシンプルにUbuntuのイメージを使用します
# M1 MacのみFROMの記述が必要
FROM --platform=linux/amd64 ubuntu:latest
# RUNコマンドは、コンテナ作成時に自動で実行するコマンドを指定
RUN apt update -y
RUN apt install -y sudo git vim
# fogeというユーザを作成、fogefogeというPWを設定
RUN useradd -m -s /bin/bash foge
RUN echo "foge:fogefoge" | chpasswd
# sudoでroot権限のコマンドを実行できるように指定
RUN gpasswd -a foge sudo
# コンテナを指定したユーザで実行(rootユーザ以外で実行したい)
USER foge
# ワークディレクトリを設定
WORKDIR /home/foge/
上記のDockerfileの作成にはこちらのサイトを参考にさせていただきました(参考というかほぼほぼコピペ、、、ありがとうございますm(_ _)m)
*Docker入門*Ubuntuの環境を構築する - Qiita
はじめにこんにちは。今回は、Dockerの基本的な操作を学びながら、以下のようなUbuntuコンテナを作成することを目指します。最も単純な、rootユーザで操作できるUbuntu(Linux)環…
このDockerfileを作業用ディレクトリに配置してビルドしてDockerイメージを生成します
$docker build . -t testUbuntu:prototypingImage
-tオプションでは イメージ名:タグ名 を指定することができます
イメージとタグの違いはあんまりよくわかってないーーーー!
イメージをビルドしたあとは、IMAGE IDを調べます
$docker image ls
そのイメージでコンテナを作成してコンテナ内に入ります
$docker run -it [IMAGE ID] bash
あとはこのコンテナの中でコマンドを実行して、上手くいったものをDokerfileに転記します
またコマンドが上手くいかなかった場合はコンテナから出ることで、最初からやり直すことができます
$exit
runコマンドで作ったコマンドは一時的なものなのかな
Docker難しいーーーーー!!
コメント