LoginSignup
6
11

More than 5 years have passed since last update.

sudo権限をもつ一般ユーザーをDockerコンテナに作成するチートシート

Last updated at Posted at 2018-07-29

プログラミングをしていて「検証環境をつくりたいなー」というときにDockerは非常に役にたちます。

シェルスクリプトのテストをするために『sudo権限をもった一般ユーザーが存在する環境』をDockerで構築したので、環境構築のチートシートを今回用意しました。

一般ユーザーの作成手順は、Dockerだけでなく、VPSを借りたときにも利用できるので活用していただければと思います。

今回作るDockerコンテナ

作成するコンテナは以下のようなスペックです

  • OSはubuntu
  • isuconというsudo権限をもつユーザーが存在する
  • 一般ユーザー(isucon)のログインシェルは/bin/bash
  • 最低限のコマンド(git, less, vimなど)がインストールされている

Dockerコンテナを立ち上げ、ログインする

docker run -it でコンテナの立ち上げてコンテナにログインできます。

今回はubuntuのDockerイメージからshell_containerというコンテナ名のDockerコンテナを作成しています。

$ docker run -it --name shell_container ubuntu /bin/bash

必要なコマンドのインストール

ubuntuコンテナには基本的なコマンドもまだ用意されていないので、最低限のコマンドをインストールします

$ apt-get update && apt-get install -y git less vim sudo

sudo権限をもつユーザーを作成する

ユーザーの作成をします。-mでホームディレクトリも作成します。

$ useradd -m isucon

isuconユーザーのパスワードを作成します。

$ passwd isucon

isuconユーザーにsudo権限を与えます

$ usermod -aG sudo isucon

isuconユーザーのログインシェルを変更します。

$ usermod -s /bin/bash isucon

(補足) 作成したDockerコンテナを再利用する場合

docker commitをすることでコンテナの環境をDockerイメージとして保存することができます。

以下のコマンドでshell_containerというコンテナをshell_sandboxというイメージ名で保存できます。

$ docker commit shell_container shell_sandbox

以下のコマンドでcommitしたshell_sandboxのイメージからコンテナを立ち上げることができます。

$ docker run -it shell_sandbox /bin/bash

まとめ

今回はdocker runを利用して『sudo権限をもった一般ユーザーが存在する環境』を作る手順の説明をしました。
今回の詳細はDockerでサクっと検証環境(テスト環境)を構築するための手順でも解説をしているので興味のあるかたはご覧になってください。

by @nishina555

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11