概要
dokcer-composeとdockerイメージを取得し、オフライン環境で起動する。
-
オンライン環境作業
- docker-composeの取得
- dockerイメージをpullで取得
- 取得したdockerイメージをtarで圧縮
-
オフライン環境作業
- docker-composeの導入
- dockerイメージを展開
- docker-composeコマンドでコンテナ起動
オンライン環境作業
初めにdocker-composeを取得する。
## docker-composeをgitから取得
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /tmp/docker-compose
## ファイル確認
$ ls -l /tmp/docker-compose
-rw-r--r-- 1 root root 11750136 Mar 19 08:24 docker-compose
あわせて、必要な3つのイメージを取得する。
- webcenter/rancher-alfresco:v5.1-201605-1
- alpine
- postgres:9.4
## webcenter/rancher-alfresco:v5.1-201605-1
$ docker pull webcenter/rancher-alfresco:v5.1-201605-1
## alpine
$ docker pull alpine
## postgres:9.4
$ docker pull postgres:9.4
## イメージ取得後の確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres 9.4 ed5a45034282 4 weeks ago 251MB
alpine latest e7d92cdc71fe 2 months ago 5.59MB
webcenter/rancher-alfresco v5.1-201605-1 c76b4794cf11 3 years ago 2.14GB
続いて、公式ドキュメントにある通り、dockerイメージをtarファイルに出力する。
## dockerイメージをtarにする
$ docker save postgres:9.4 webcenter/rancher-alfresco:v5.1-201605-1 alpine > alfresco.tar
## ファイル確認
$ ls -l alfresco.tar
-rw-rw-r-- 1 root root 2435766272 Mar 19 07:41 alfresco.tar
ここまでで取得した以下の2ファイルをオフライン環境へ配置する。
- docker-compose
- alfresco.tar
オフライン環境で作業
ここからはオフライン環境での作業になる。
まずは取得したファイルが配置してあることを確認する。
## 配置確認
$ ls -l /tmp
-rw-r--r-- 1 root root 11750136 Mar 19 08:24 docker-compose
-rw-rw-r-- 1 root root 2435766272 Mar 19 07:41 alfresco.tar
docker-composeの導入を行う。
## bin配下にdocker-composeを配置
$ sudo mv /tmp/docker-compose /usr/local/bin/
## 実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose
## 導入確認(バージョンが表示されること)
$ docker-compose -v
docker-compose version 1.22.0, build f46880fe
docker-compose.ymlは以下に書かれていたもの参考に用意。
参考:【Docker】これは役に立つ!! docker-compose.ymlの例まとめ
alfresco:
environment:
CIFS_ENABLED: 'false'
FTP_ENABLED: 'false'
tty: true
image: webcenter/rancher-alfresco:v5.1-201605-1
links:
- postgres:db
stdin_open: true
ports:
- 8081:8080/tcp
volumes_from:
- alfresco-data
alfresco-data:
image: alpine
volumes:
- /opt/alfresco/alf_data
net: none
command: /bin/true
postgres:
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: alfrescodb
POSTGRES_PASSWORD: password
POSTGRES_USER: alfrescouser
tty: true
image: postgres:9.4
stdin_open: true
volumes_from:
- postgres-data
postgres-data:
labels:
io.rancher.container.start_once: 'true'
image: alpine
volumes:
- /var/lib/postgresql/data/pgdata
net: none
command: /bin/true
私が使用しているオフライン環境では8080ポートが使用済みのため、ポートを8081へ変更している。
いよいよ、dokcerコンテナを起動する。
docker-compose.ymlが置いてある階層で以下のコマンドを実施する。
## コンテナ起動
$ docker-compose up -d
Starting alfresco_alfresco-data_1 ... done
Starting alfresco_postgres-data_1 ... done
Starting alfresco_postgres_1 ... done
Starting alfresco_alfresco_1 ... done
## コンテナ起動確認
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------------------------------------------------------------------
alfresco_alfresco-data_1 /bin/true Exit 0
alfresco_alfresco_1 /bin/sh -c /app/run.sh Up 137/tcp, 138/tcp, 139/tcp, 21/tcp, 445/tcp, 7070/tcp, 8009/tcp, 0.0.0.0:8081->8080/tcp
alfresco_postgres-data_1 /bin/true Exit 0
alfresco_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp
##最後に実際にアクセスしてみる。
ブラウザを開き、以下のアドレスを入力。
http://[オフライン環境のIPアドレス]:8081/share/page
以上で終了になります。
おわりに
Qiita初投稿でした!
アウトプットを全くしてこなかったので記事にしてみました。
#####余談
私はオンライン環境にAWSを使用していました。
EBS容量不足やエンドポイントの使い方など含めて、記事には出していない問題もいくつかありました。
あと、Markdown形式の文章も初めて書いたかも。
いい学習になったかも。
~おしまい~