Rumah >Java >javaTutorial >Cara menggunakan Docker untuk membina persekitaran berjalan Java
>Apakah yang dilakukan oleh docker?
Docker ialah enjin kontena termaju berasaskan bekas linux (kontena lxc-linux), dibangunkan berdasarkan bahasa go,
Kod sumber dihoskan pada github dan sumber terbuka dengan mematuhi perjanjian apache2.0. Matlamat docker adalah untuk melaksanakan penyelesaian virtualisasi sistem pengendalian yang ringan.
Untuk mempelajari docker, anda mesti memahami beberapa konsep dahulu:
Imej—Imej Docker adalah serupa dengan imej ISO sistem biasa dan mengandungi maklumat aplikasi;
Kontena - Bekas adalah bersamaan dengan mesin maya yang boleh dijalankan Aplikasi berjalan dalam bekas dan docker berjalan pada "docker"; serupa dengan git Kawalan versi juga dibahagikan kepada dua bentuk: gudang awam (awam) dan gudang persendirian (swasta); Docker menyokong kebanyakan pengedaran Linux, anda boleh menjalankan sistem pengendalian yang berbeza.Jalankan aplikasi anda sendiri pada mesin yang berbeza tanpa perlu risau tentang perkakasan, persekitaran operasi dan konfigurasi lain Perpindahan aplikasi menjadi sangat mudah.> Perbandingan antara docker dan teknologi virtualisasi tradisional
Berbanding dengan teknologi mesin maya tradisional, docker menggunakan lebih sedikit sumber, bermula dengan lebih pantas dan besar. penempatan dan operasi dan penyelenggaraan projek.
Docker melaksanakan virtualisasi pada peringkat sistem pengendalian dan menggunakan semula sistem pengendalian hos tempatan Kaedah tradisional adalah untuk memayakan berbilang sistem pengendalian berdasarkan perkakasan dan kemudian menggunakan aplikasi yang berkaitan.
vs
>Bina persekitaran docker
Saya menggunakan ubuntu 14.04 dan memasang perkhidmatan docker padanya.
Pasang docker dengan cepat
Repositori ubuntu versi 14.04 sudah menyokong pemasangan docker,
anda boleh menggunakan kaedah pemasangan cepat,
Mulakan perkhidmatan dan daemon
sudo apt-get update sudo apt-get install docker.io
Kaedah pemasangan ini biasanya bukan versi terkini docker
service docker.io status service docker.io start
Jika anda ingin memasang versi terkini , anda boleh pergi ke laman web rasmi docker Muat turun dan pasang.
>Buat imej docker pertama
Proses umum membina imej docker adalah dengan membuat bekas terlebih dahulu dan mengubah suai imej dalam bekas , dan konfigurasikan persekitaran yang berkaitan, dsb., dan akhirnya menyerahkan pengubahsuaian sebagai imej baharu.
Muat turun sistem yang digunakan untuk membuat imej,
sudo docker pull index.alauda.cn/alauda/ubuntuDi sini saya muat turun fail imej daripada Lingqueyun Tarik dari pusat cermin.
Atau anda boleh menariknya terus dari pusat imej docker, tetapi nampaknya sangat perlahan:
Selepas muat turun berjaya, gunakan arahan imej untuk melihat imej setempat senarai:
sudo docker pull ubuntu
docker images
Perhatikan di sini, sila tambah sudo apabila menggunakan docker.
Selepas docker dipasang secara lalai, anda perlu menjalankan perintah sudo setiap kali anda melaksanakan docker Jika anda tidak mengikut sudo, melaksanakan secara langsung arahan docker akan melaporkan beberapa ralat kebenaran.(2) Mulakan bekas dan ubah suai imej
Selepas imej dimuat turun secara setempat, anda boleh menggunakan docker untuk menjalankannya,
Mulakan bekas melalui parameter arahan berikut,
-t: Menunjukkan bahawa baris arahan akan dimasukkan selepas bekas dimulakan
-v: Menunjukkan direktori setempat yang perlu. dipasang ke dalam bekas,
Format: -v
"ID Imej", anda juga boleh menggunakan "nama gudang: nama teg", contohnya: index.alauda .cn/alauda/ubuntu :terkini.
sudo docker run -i -t -v /data/software/:/data/software/ ae983d5e88ce /bin/bashArahan di atas boleh menggunakan imej yang ditentukan untuk menjalankan shell Jika anda ingin keluar dari terminal, anda boleh menggunakan arahan keluar, atau tekan ctrl -p + ctrl -q dalam urutan untuk bertukar kepada hos. mesin. Walau bagaimanapun, dengan cara ini, kontena masih berjalan lusa. Selepas memulakan terminal, masukkan direktori /data/software/, anda boleh mendapati bahawa fail dalam direktori mesin semasa telah disegerakkan:
(3) Pasang jdk dan tomcat, dsb.
Pasang jdk dan atur cara lain yang berkaitan, di sini semuanya dipasang pada direktori /data/:
Konfigurasikan pembolehubah persekitaran
tar -zxvf jdk-7u25-linux-x64.tar.gz -c /data/ mv jdk1.7.0_25 jdk unzip apache-tomcat-7.0.54.zip -d /data/ mv apache-tomcat-7.0.54 tomcat
Tambah Konfigurasi berikut:
vi /etc/profile
Simpan dan keluar, tetapan akan berkuat kuasa serta-merta:
#set java environment export java_home=/data/jdk export jre_home=${java_home}/jre export classpath=.:javahome/lib:javahome/lib:{jre_home}/lib export path=javahome/bin:javahome/bin:path export catalina_home=/data/tomcat export catalina_base=/data/tomcatsumber /etc/profile
(4) Tulis skrip permulaan
启动tomcat时必须通过tomcathome/bin/catalina.sh实现,不能使用tomcathome/bin/catalina.sh实现,不能使用tomcat_home/bin/startup.sh启动,否则脚本执行后容器会马上退出。 vi /data/start.sh 添加以下内容: 添加可执行权限:chmod u+x /data/start.sh (5)构建镜像 使用docker构建镜像的两种方法: 使用docker commit 命令,更直观一些; 使用docker build命令和dockerfile文件,可以模板化镜像构建过程; 这里使用docker commit的方式创建镜像。 查看容器列表: 提交一个新的镜像: 如果有docker账号,可以将镜像推送到docker hub或资金的私有registry中。 现在查看本地的docker镜像, 可以看到本地仓库已经有刚刚创建的docker镜像。 docker inspect可以查看新创建的镜像的详细信息: sudo docker inspect bingyue/docdemo (6)运行新创建的镜像 -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 18080 端口, 这样就向外界暴露了 18080 端口,可通过 docker 网桥来访问容器内部的 8080 端口了。 查看后台是否启动成功: 测试访问: (7)提交至docker仓库 如果有docker仓库的账户,可以将本地创建的镜像提交至仓库。 >使用体验 到这一步,差不多完成了docker的初体验,docker应用还是比较简单的,真正复杂的应该是背后的虚拟化技术。 一步一步部署下来,的确docker相比传统的虚拟机技术要简单了很多,有机会继续深入学习。 附:添加docker用户组,避免sudo输入 默认安装完 docker 后,每次执行 docker 都需要运行 sudo 命令,影响效率。如果不跟 sudo,直接执行 docker images 命令会有如下问题: 把当前用户执行权限添加到相应的docker用户组里面就可以解决这个问题。 添加一个新的docker用户组 # 添加当前用户到docker用户组里 # 重启docker后台监护进程 # 重启之后,尝试一下,是否生效 #若还未生效,则系统重启,则生效 docker常用命令 # 下载一个ubuntu镜像 # 使用ubuntu运行一个交互性的shell #docker ps命令 #port命令 #删除容器命令 #其他命令快速参考:#!/bin/bash
# export environment variable
source /etc/profile
# start tomcat
bash /data/tomcat/bin/catalina.sh run
sudo docker ps -a
container id image command created status ports names
39b2cf60a4c1 ae983d5e88ce:latest "/bin/bash" 5 hours ago exited (0) 9 seconds ago dreamy_euclid
sudo docker commit 39b2cf60a4c1 bingyue/docdemo
sudo docker images
repository tag image id created virtual size
bingyue/docdemo latest bfc7ed316d42 about a minute ago 528.2 mb
index.alauda.cn/alauda/ubuntu latest ae983d5e88ce 10 months ago 255.1 mb
docker run -d -p 18080:8080 --name docdemo bingyue/docdemo /data/start.sh
docker ps
get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: permission denied. are you trying to connect to a tls-enabled daemon without tls?sudo groupadd docker
sudo gpasswd -a bingyue docker
sudo service docker restart
docker version
sudo reboot
sudo docker pull ubuntu
sudo docker run -i -t ubuntu /bin/bash
sudo docker ps #列出当前所有正在运行的container
sudo docker ps -l #列出最近一次启动的,且正在运行的container
sudo docker ps -a #列出所有的container
docker run -p 80:8080 <image> <cmd> #映射容器的8080端口到宿主机的80端口
sudo docker rm `sudo docker ps -a -q`#删除所有容器
sudo docker rm $container_id#删除容器id为container_id的容器
sudo docker images #查看本地镜像
sudo docker attach $container_id #启动一个已存在的docker实例
sudo docker stop $container_id #停止docker实例
sudo docker logs $container_id #查看docker实例运行日志,确保正常运行
sudo docker inspect $container_id #查看container的实例属性,比如ip等等
Atas ialah kandungan terperinci Cara menggunakan Docker untuk membina persekitaran berjalan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!