docker hubから取ってきたJenkinsイメージはどうやら一年くらい前から更新が止まっているらしく動作しないプラグインがある。
そのため、今回ubuntuイメージをベースにJenkinsのコンテナを作成し起動させてみた。
あと、Jenkinsを立ち上げるためにDockerのコマンドについて勉強したので最後にまとめておく。
Jenkinsイメージの作成
コンテナの立ち上げ
$ docker pull ubuntu
$ docker run -ti ubuntu
Jenkinsをインストールするための下準備
$ apt-get update
$ apt-get install wget gnupg openjdk-8-jre
Jenkinsをインストール
$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | apt-key add -
$ sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ apt-get update
$ apt-get install jenkins
イメージの作成
$ exit
上記のコマンドでコンテナから一度抜ける。
その後、下記のコマンドでイメージを作成する。
$ docker ps -a
# 表示されたコンテナの「CONTAINER ID」を指定する
$ docker commit <CONTAINER ID> <イメージ名>
# イメージ名は、「製作者の名前/イメージ名」にするのが慣習になってるらしい
# ご自由にどうぞ
Jenkinsの起動
Jenkinsコンテナの作成
$ docker run -ti -p 8080:8080 <Jenkinsのイメージ名>
Jenkinsサービスの起動
service jenkins start
Jenkinsにアクセス
http://localhost:8080/
にアクセスする
その際、パスワードを要求されるので、下記のコマンドを実行しパスワードを入力する
$ cat /var/lib/jenkins/secrets/initialAdminPassword
パスワードが正しければインストールが始まるので、あとはユーザ登録を済ませれば
自由に使うことができます。
データの永続化が。。。という話があるのですが、よくわからないので今回はここまでとする。
時間があれば、Dockerfileを作成してみようと思う。
docker勉強
##コマンド一覧
- docker pull <イメージ名>
- docker hubから指定したイメージを取ってくる
- docker run <イメージ名> <実行コマンド>
- 指定したイメージのコンテナの作成
- オプション
-
-d
バックグラウンド実行 -
-i
フォアグラウンド実行 -
-t
ターミナルの起動 -
-p
ポートの指定(例:8080:80)
-
- 終了は
exit
で行う
- docker commit <コンテナID> <イメージ名>
- イメージの作成
- イメージ名は、
製作者:イメージ名
にするのが慣習になっているみたい
- docker search <イメージ名>
- イメージの検索を行う
- docker inspect <イメージ名>
- イメージの詳細を表示する
- docker ps
- 実行中のコンテナの一覧を表示
- オプション
-
-a
存在するコンテナの一覧を表示 -
-n=<数値>
表示するコンテナの一覧の上位<数値>個だけ表示
-
- docker logs <コンテナID>
- 指定してコンテナの実行ログを表示
- docker attach --sig-proxy=false <コンテナID>
- 実行中のコンテナの中に入る
- 抜けるときは
ctr + c
-
exit
で抜けた場合は、コンテナが停止する
- docker kill(stop) <コンテナID>
- 実行中のコンテナの停止
- docker start <コンテナID>
- 指定したコンテナを起動する
- docker build -t <作成するイメージ名>
- 指定したDockerfileを元にイメージの作成
Dockerfileの文法(?)
Dockerfile
# FROMで指定したイメージを元に以下の命令を実行する
FROM <イメージ名>
# MAINTAINERは製作者の名前と連絡先を記述
MAINTAINER <名前> <連絡先>
# RUN : ビルド中に実行するコマンド
RUN echo "now building..."
# ADD : ローカルファイルをコンテナ内に転送
ADD <ローカルファイル> <リモートディレクトリ>
# EXPORT : 指定したポート番号の解放
EXPORT <ポート番号>
# CMD : コンテナを起動する際に実行するコマンド
CMD "now runninng..."