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
Post a Comment