LoginSignup
7
10

More than 3 years have passed since last update.

snippet: docker-compose

Last updated at Posted at 2015-08-21
最新版インストール
VERSION=$(curl -sI https://github.com/docker/compose/releases/latest | awk -F'/' '/^Location:/{print $NF}' | tr -d '\r')
URL=https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-`uname -s`-`uname -m`
sh -c "wget -O /usr/local/bin/docker-compose $URL"
chmod +x /usr/local/bin/docker-compose
起動方法
docker-compose up

参考

docker-compose.ymlの書き方

commandで複数コマンドを書く方法
  command: sh -c "bundle install && rails s -p 3000 -b '0.0.0.0'"
WORKDIR指定
  working_dir: /app
VOLUMES指定
  volumes:
    - ./app:/app
  • app:/appでは警告でる

コンテナ内のデータバックアップ

docker-backup.sh
#!/bin/sh
set -eu
if [ ! $# -eq 3 ];then
  echo "$0 CONTAINER_NAME tar_name DIRECTORY"
  exit 1
fi

set -x
docker run --rm \
  --volumes-from $1 \
  -v $(pwd):/backup \
  busybox tar cf /backup/$2 $3

コンテナ起動
$ docker run -it 0808b6baff6f /bin/bash
root@6f0bdd0513b9:/app# exit
コンテナの名前確認
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS PORTS               NAMES
6f0bdd0513b9        0808b6baff6f        "/bin/bash"         2 seconds ago       Exited (0) 1 seconds ago   serene_fermat
  • serene_fermat という名前を確認。
app.tarに固める
$ docker-backup.sh serene_fermat app.tar /app
+ pwd
+ docker run --rm --volumes-from serene_fermat -v /home/tk/work/dockerimage-ja/rails4:/backup busybox tar cf /backup/app.tar /app
tar: removing leading '/' from member names
ホスト側にapp.tarがあることを確認
$ ls -lh app.tar 
-rw-r--r-- 1 root root 92K  9月  7 10:05 app.tar

pottava/docker-webui

docker-compose.yml
docker-webui:
  image: pottava/docker-webui
  restart: always
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
  environment:
    - DOCKER_HOST=unix:///var/run/docker.sock
# ports:
#   - "9000:9000"

Codebox (IDE)

  • Docker Hub
  • 以下イメージが用意されている。使用する言語のイメージを指定。
docker-compose.yml
data-codebox:
  image: busybox
  restart: always
  volumes:
    - ./data:/workspace
codebox:
  image: 'javierprovecho/docker-codebox'
  restart: always
  ports:
    - 8000:8000
    - 2000:2000
  volumes_from:
    - data-codebox
  • http://localhost:8000/
    • フォントが小さいので設定から大きくしておく。(12 -> 16)
    • vimキーバインドも用意されている。
    • 使い方よくわからなかったので自分でイメージ作ったほうが早そう

Libreboard (GTD)

docker-compose.yml
manet:
  image: earlyclaim/docker-manet
  restart: always
  ports:
    - "8891:8891"

Manet (画面キャプチャ)

docker-compose.yml
manet:
  image: earlyclaim/docker-manet
  restart: always
  ports:
    - "8891:8891"
使い方
curl "http://localhost:8891/?url=github.com" > github.png

Gitbucket (GIT)

docker-compose.yml
data-gitbucket:
  image: busybox
  restart: always
  volumes:
    - ./data:/gitbucket

gitbucket:
  image: f99aq8ove/gitbucket
  restart: always
  volumes_from:
    - data-gitbucket
  ports:
    - "8080:8080"
  command: java -jar /opt/gitbucket.war --prefix=/gitbucket

Redmine3 (BTS)

docker-compose.yml
redmine3:
  image: redmine:latest
  restart: always
  volumes:
    - ./sqlite:/usr/src/redmine/sqlite
    - ./files:/usr/src/redmine/files
  ports:
    - "8080:3000"

owncloud9

docker-compose.yml
owncloud:
  image: owncloud
  restart: always
  volumes:
    - ./vol/apps:/var/www/html/apps
    - ./vol/config:/var/www/html/config
    - ./vol/data:/var/www/html/data
  ports:
    - "8080:80"
  • WEBブラウザでアクセスした時、permissionエラーが出る場合は
コンテナに入って実行
chown -R www-data:www-data /var/ww/html/ 

pydio

docker-compose.yml
pydio:
  image: pydio/pydio-core
  restart: always
  ports:
    - "8443:443"

sshd

docker-compose.yml
fedora-ssh:
  image: fedora/ssh
  restart: always
  hostname: fedora-ssh
  volumes:
    - .:/home/user/
  ports:
    - "2200:22"
userのパスワード確認(ランダム生成)
$ docker-compose logs
fedora-ssh_1 | ssh user password: hDkyLXrWb+2afpJ80qZY
接続
$ ssh -p 2200 user@localhost
パスワードは hDkyLXrWb+2afpJ80qZY
  • scpをするにはopenssh-clientsパッケージが必要。

rssh

docker-compose.yml
rssh:
  image: bboehmke/rssh
  restart: always
  hostname: rssh
  volumes:
    - .:/home/shareuser/
  ports:
    - "2200:22"
  command: "shareuser::1000:1000"
  • shareuserをUID:1000,GID:1000で作成。パスワードは空。
接続確認
sftp -P 2200 shareuser@localhost
ログ確認(接続失敗時のログを確認)
docker-compose logs -f

ssh-keygenをワンライナーで行う

user1とuser1.pubを作成
ssh-keygen -q -C user1 -f user1 -P P@ssword
空パスワードを指定する場合
ssh-keygen -q -C user1 -f user1 -P ""
ppkに変換する方法(パスワードがからの場合なにも聞かれない)
puttygen user1 -o user1.ppk

wordpress

docker-compose.yml
wordpress:
  image: wordpress
  restart: always
  links:
    - db:mysql
  ports:
    - 8080:80

db:
  image: mariadb
  restart: always
  environment:
    MYSQL_ROOT_PASSWORD: Mu8ain1U
  • 気に入ったテーマ
    • Generic Framework
  • forum
    • bbpress

zabbix3

docker-compose.yml
zabbix-db-storage:
  image: busybox:latest
  restart: always
  volumes:
    - /var/lib/mysql

zabbix-db:
  image: zabbix/zabbix-db-mariadb
  restart: always
  volumes:
    - /backups:/backups
  volumes_from:
    - zabbix-db-storage
  environment:
    - MARIADB_USER=zabbix
    - MARIADB_PASS=my_password

zabbix-server:
  image: zabbix/zabbix-3.0:dev
  restart: always
  ports:
    - "80:80"
    - "10051:10051"
  links:
    - zabbix-db:zabbix.db
  environment:
    - ZS_DBHost=zabbix.db
    - ZS_DBUser=zabbix
        - ZS_DBPassword=my_password

Wekan (カンバン)

docker-compose.yml
wekan:
  image: mquandalle/wekan
  restart: always
  links:
    - wekandb
  environment:
    - MONGO_URL=mongodb://wekandb/wekan
    - ROOT_URL=http://localhost:8081
  ports:
    - 8081:80

wekandb:
   image: mongo
   restart: always
   volumes:
     - ./data:/data/db

qbittorrent

mkdir config torrents downloads
sudo chown 520 config torrents downloads
sudo chmod o+w config torrents downloads
docker-compose.yml
qt:
  image: wernight/qbittorrent
  restart: always
  ports:
   - "8080:8080"
   - "6881:6881"
  volumes:
   - ./config:/config
   - ./torrents:/torrents
   - ./downloads:/downloads

rainloop

docker-compose.yml
rainloop:
  image: ahmet2mir/rainloop
  restart: always
  ports:
   - "8080:80"

tinyproxy

docker-compose.yml
proxy:
  image: tukiyo3/alpine-tinyproxy
  restart: always
  volumes:
    - ./tinyproxy.conf:/etc/tinyproxy/tinyproxy.conf
  ports:
    - "8888:8888"

samba

run.sh
sudo docker run -it \
 -p 139:139 \
 -p 445:445 \
 -e TZ=JST9 \
 -d dperson/samba \
 \
  -u "user1;passw@rd" \
  -s "share;/share;no;no;no;user1"
# -s "共有名;パス;共有フォルダを見せるか;読み取り専用か;ゲストユーザもアクセスできるか;"
docker-compose.yml
samba:
  image: dperson/samba
  restart: always
  volumes:
    - ./data/:/share/
  ports:
    - 139:139
    - 445:445
  environment:
    - TZ='JST9'
  command: '-u "user1;passw@rd" -s "share;/share;no;no;no;user1"'

gitea

version: '3'
services:
  web:
    image: gitea/gitea
    volumes:
      - ./gitea-data:/data
    ports:
      - "3000:3000"
      - "10022:10022"
    environment:
      - TZ=Japan
      - SSH_PORT=10022
    restart: always
7
10
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
7
10