Run Docker In Production 2

 Berikut adalah langkah-langkah untuk mendeploy aplikasi java pada docker






Instal Docker

Instal beberapa ekstensi kernel yang diperlukan untuk menjalankannya:

sudo apt-get install linux-image-extra-$(uname -r)

Kemudian instal software-properties-common yang memberi add-apt-repository :

sudo apt-get install software-properties-common

Tambahkan Arsip Paket Pribadi (PPA) dotcloud:

sudo add-apt-repository ppa:dotcloud/lxc-docker

sudo apt-get update

Dan akhirnya instal Docker dengan:

sudo apt-get install lxc-docker

Sekarang kita siap untuk menarik Image dasar yang akan menjadi dasar dari semua pekerjaan kita:

docker pull base

Ini akan menghasilkan:

Pulling repository base from https://index.docker.io/v1

Pulling image 27cf784147099545 () from base

Pulling 27cf784147099545 metadata

Pulling 27cf784147099545 fs layer

Downloading 94863360/? (n/a)

Pulling image b750fe7[...]2b4accb2c21d589ff2f5f2dc (ubuntu-quantl) from base

Pulling b750fe79269d2[...]f05b433b1d1a02a62b4accb2c21d589ff2f5f2dc metadata

Pulling b750fe79269d2[...]3ef05b4332b1d1a02a62b4accb2c289ff2f5f2dc fs layer

Downloading 10240/? (n/a)Perhatikan bahwa setiap perintah Docker mengharuskan mesin Kita menjalankan daemon Docker. Untuk menjalankan daemon Docker di latar belakang jika belum, cukup ketik:Perhatikan bahwa setiap Docker perintah mengharuskan mesin Kita adalah menjalankan Docker daemon . Untuk menjalankan Docker daemon di latar belakang di kasus itu 's belum, cukup ketik:  sudo docker -d &

Kita dapat menarik Image publik apa pun yang dipublikasikan di indeks Docker atau mempublikasikannya sendiri. Dan kita dapat memeriksa semua Image yang dimiliki Docker dengan:

docker images

Ini akan mencantumkan:

REPOSITORY TAG ID CREATED

base ubuntu-quantl b750fe79269d 10 weeks ago

base latest b750fe79269d 10 weeks ago

base ubuntu-quantal b750fe79269d 10 weeks ago

base ubuntu-12.10 b750fe79269d 10 weeks ago

Yang berarti kita memiliki Image dasar berdasarkan Ubuntu 12.10 yang siap untuk kita teliti.

Instal Java di dalam Docker

Sekarang kita sedang dalam perjalanan untuk membuat Image dan menyesuaikannya dengan kebutuhan kita. Persyaratan pertama adalah menginstal Java. Jalankan shell berikut di Container dasar:

docker run -i -t base /bin/bash

Perintah tersebeut akan memulai Container baru, memberinya id unik, memberinya alamat IP dan mengatur jaringan ke sana. Kita disambut dengan shell root:

root@298af82e71ef:/#

Sekarang dalam Container ini – yang merupakan benda seperti vm yang ringan dan tersegel yang terpisah dari yang lainnya – kita dapat menginstal dependensi kita:

apt-get install software-properties-common

Tambahkan PPA yang memungkinkan kita menginstal Java:

add-apt-repository ppa:webupd8team/java

apt-get update

Kemudian akhirnya, instal Java:

apt-get install git curl oracle-java7-installer

(*Perhatikan bahwa Kita mungkin harus menerima lisensi secara manual.)

Sekarang kita dapat membuat komit untuk menyimpan status Container ini dalam sebuah Image.

Keluar dari Container (dengan exit atau CTRL-d ) dan daftarkan Container – mati atau hidup dengan docker ps -a , yang menghasilkan:

ID IMAGE COMMAND CREATED STATUS PORTS

8e07a84ea97a base:latest /bin/bash 12 minutes ago Exit 0

fecada4ce303 base:latest /bin/bash 17 minutes ago Exit 0

9cb541022c5b base:latest /bin/bash 25 minutes ago Exit 127

a2914a38394d durdn/base:latest /bin/bash 26 minutes ago Exit 0

6fa304872025 durdn/base:latest /bin/bash 30 minutes ago Exit 0

3e0241227129 durdn/base:latest /bin/bash 30 minutes ago Exit 0

98b400fcb5dc durdn/base:latest /bin/bash 31 minutes ago Exit 0

88a113234c47 base:latest /bin/bash 36 minutes ago Exit 0

Dari daftar kontainer terbaru Kita mengambil yang terbaru, tempat Kita menginstal semua dependensi. Sekarang kita dapat melakukan snapshot/Image baru dengan docker commit :

docker commit 8e07a84ea97a durdn/java7

Dan seperti yang Kita lihat, sekarang terdaftar jika Kita mengetik docker images :

REPOSITORY TAG ID CREATED

durdn/java7 latest ab6396541f9a 2 hours ago

base ubuntu-quantal b750fe79269d 10 weeks ago

base ubuntu-quantl b750fe79269d 10 weeks ago

base latest b750fe79269d 10 weeks ago

base ubuntu-12.10 b750fe79269d 10 weeks ago

Instal aplikasi di Container Docker Kita

Sekarang kita dapat menginstal aplikasi Java kita – dalam hal ini Bitbucket Server – pada image durdn/java7 yang baru kita buat .

Kita dapat menambahkan konten ke Image dalam beberapa cara: perintah docker insert adalah satu, tetapi kita juga dapat menggunakan curl , wget , dll.

Jalankan shell di Image durdn/java7 yang baru dibuat membuka port cermin 7990 dari Container ke Host dan dengan rumah persisten tempat data akan disimpan:

docker run -i -t -p :7990 -v /opt/stash-home durdn/java7 /bin/bash

root@298af82e71ef:/#

Unduh Bitbucket Server. (Perhatikan bahwa ketika posting ini pertama kali diterbitkan, Server Bitbucket disebut "Stash". Kita akan melihatnya di sini di beberapa nama file dan direktori, serta tangkapan layar di bawah ini

root@298af82e71ef:/# curl -Lks https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-4.13.0.tar.gz -o /root/stash.tar.gz

Buka paket simpanan, buat dan ekspor folder STASH_HOME :

root@298af82e71ef:/# mkdir /opt/stash

root@298af82e71ef:/# tar zxf /root/stash.tar.gz --strip=1 -C /opt/stash

root@298af82e71ef:/# mkdir /opt/stash-home

root@298af82e71ef:/# export STASH_HOME=/opt/stash-home

Untuk menghindari kesalahan startup, kita harus menambahkan id unik dari host ini 298af82e71ef ke direktori /etc/hosts .

Sekarang kita dapat memulai aplikasi:

root@298af82e71ef:/# /opt/stash/bin/start-stash.sh -fg

Periksa apakah Stash Bitbucket Server berjalan di container dengan mengakses http://localhost:7990/stash . Berhasil:



Kita sekarang dapat keluar dari Container ini dan mengkomitnya sehingga Kita dapat menggunakan kembali pekerjaan yang Kita lakukan:

docker commit aec2feb8cdea durdn/stash

effd5d47b34f

Di mana aec2feb8cdea adalah ID dari Container terakhir yang dimodifikasi di docker ps -a . Hasilnya adalah Kita memiliki Image baru bernama durdn/stash dengan Bitbucket Server diinstal:

REPOSITORY TAG ID CREATED

durdn/java7 latest ab6396541f9a 2 hours ago

durdn/stash latest effd5d47b34f 3 seconds ago

base ubuntu-quantal b750fe79269d 10 weeks ago

base ubuntu-quantl b750fe79269d 10 weeks ago

base latest b750fe79269d 10 weeks ago

base ubuntu-12.10 b750fe79269d 10 weeks ago

Catatan tentang Container fana dan penyimpanan persisten

Container bersifat sementara. Setelah dirobohkan, mereka akan diatur ulang sepenuhnya ke status snapshot mereka.

Ini berarti penginstalan aplikasi Kita akan disetel ulang setiap kali Kita menghentikan penampung. Untuk memastikan data dipertahankan di antara proses, kita dapat menggunakan volumes , yang akan dibagikan dan disimpan di antara container. Kita melakukan ini hanya dengan menggunakan kembali volume dari Container lama menggunakan opsi -volumes-from .

Mulai Bitbucket dalam Container secara interaktif ( -i menjalankan perintah secara interaktif dan -t melampirkan tty ke dalamnya):

docker run -i -t -p :7990 -volumes-from aec2feb8cdea durdn/stash /bin/bash -c 'STASH_HOME=/opt/stash-home /opt/stash/bin/start-stash.sh -fg'

Perintah ini akan memulai aplikasi di latar depan. Jika Kita ingin Container berjalan di latar belakang, gunakan flag -d :

docker run -d -p :7990 -volumes-from aec2feb8cdea durdn/stash /bin/bash -c 'STASH_HOME=/opt/stash-home /opt/stash/bin/start-stash.sh -fg'

Instance aplikasi Kita – dengan data tetap ada – sekarang berjalan di latar belakang seperti yang Kita lihat dengan menjalankan docker ps .

Comments

Popular posts from this blog

PHP Lumen Service Docs

Interoperabilitas - Web Service