Docker 搭建javaweb執行環境
公司最近準備將java 環境放在docker容器上跑,方便以後做環境的遷移。趁著這次機會有時間來好好的學一一下docker的使用。下面是整理的一份文件,分享出來,供大家使用。
一、虛擬機器Docker服務安裝
1.1Linux(Ubuntu)
Ubuntu系統安裝,要求系統核心版本高於3.10,核心版本檢視uname -r
;
1.1.1獲取最新版本的 Docker 安裝包
#拉取安裝包 wget -qO- https://get.docker.com/ | sh #啟動後臺服務 sudo service docker start #測試執行hello-world docker run hello-world
1.1.2 配置映象加速
#開啟
/etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
1.2Linux(Centos 7+)
1.2.1 解除安裝舊版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
1.2.2 使用儲存庫安裝
#安裝所需要的包 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 設定儲存庫 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo * 這裡最好使用阿里雲替換 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #更新yum快取 sudo yum makecache fast #安裝docekr-ce版本 sudo yum -y install docker-ce #啟動docker服務 sudo systemctl start docker #驗證 sudo docker run hello-world #配置加速映象 /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] }
注:win、mac安裝參照官網,有圖形化工具更易操作這裡不一一介紹
二、映象獲取&容器的啟動使用
前提:獲取自己的映象加速地址,在阿里雲開發者平臺("https://cr.console.aliyun.com/cn-hangzhou/mirrors")
,註冊賬號,會得到自己的映象加速地址,之後可以通阿里雲的映象操作管理映象。
2.1映象拉取
在安裝完成docker服務後,需要哪些軟體或者環境可以直接在docker hub上查詢("https://hub.docker.com/")
,拉取指定的版本。也可以使用阿里雲提供映象倉庫("https://dev.aliyun.com/search.html")
查詢獲取映象。
2.1.1映象常用命令
#映象查詢
docker search [images name]
#映象獲取
docker pull [images name]:[tag]
#映象查詢
docker images
#映象刪除
docker rmi images[id&name]
#強制刪除
docker rmi -f iamges[id& name]
#啟動映象
docker run [options] images
optipns 可變引數:
--name=“”:啟動容器的名字
-d :後臺啟動,互動頁面
-i :以互動式啟動容器
-t :分配偽終端(一般-it是同時使用的)
-p :為容器指定埠對映
-P :隨機分配埠
-v :路徑對映
2.1.2容器常用命令
#檢視正在執行中的容器
docker ps
#檢視所有容器
docker ps -a
#檢視上n次執行的容器
docker ps -n
#停止容器
docker stop [containerID&name]
#啟動容器
docker start [containerID&name]
#刪除容器
docker rm [containerid]
#從容器內拷貝檔案到宿主機
docker cp 容器ID:容器內路徑下檔案地址 宿主機路徑資料夾
#從宿主機拷貝檔案到容器中
docker cp 宿主機檔案地址 容器ID:容器內路徑資料夾
注意容器退出的方式:
①. exit 容器停止
②. ctrl+p+q 容器退出但不停止
進入執行中容器的方式:
①.attach 直接進入容器啟動命令的終端,不會重新啟動新的程序
②.exec 在容器中開啟終端,並且可以啟動新的程序
2.1.3容器生成映象
在完成自定義映象後,方便後續直接使用,可以使用映象生成的方式將其儲存至阿里雲映象倉庫(或者官方docker hub)。後續如果使用可以直接拉取,執行。
#映象生成
docker commit [options] containerid 名稱空間/建立的映象名:[標籤名]
options 可變引數:
-a :作者
-m :描述
#映象檢視
docker iamges 檢視時候有自己提交的映象
三、阿里雲容器服務的使用
映象生成完成後,可以提交到公共庫中,方便共享與大家的使用。這裡介紹的方法是通過阿里雲的映象倉庫服務,理論同github使用相同。
3.1.1 映象倉庫建立
建立完成後會有操作步驟的提示:
例子:
#登入阿里雲Docker Registry
$ sudo docker login --username=fw19940314 registry.cn-hangzhou.aliyuncs.com
#將自己的本地映象推送到映象倉庫中
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/shishudev/dev:[映象版本號]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/shishudev/dev:[映象版本號]
#拉取映象
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/shishudev/dev:[映象版本號]
四、伺服器環境的搭建
最新版本1.1.1,映象資訊centos7內建jdk+tomcat
拉取完成後啟動映象,使配置生效:source /etc/profile
啟動命令:docker run -it --name dev -p 8080:8080 -v 宿主機目錄:容器目錄--privilege = true imagesid
注:tomcat webapp掛載地址 /usr/local/tomcat/webapps
,log 日誌掛載地址/usr/local/tomcat/logs
mysql 開發環境
拉取docker pull mysql:5.6
執行及資料持久化docker run -p 3306:3306 --name mysql -v 宿主機配置檔案地址:/etc/mysql/conf.d -v 宿主機log檔案地址:/logs -v 宿主機data地址:/var/lib/mysql --character-set-server=utf8 --collation-server=utf8_general_ci -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
互動 docker exec -it containerid /bin/bash
資料備份docker exec containerid sh -c ' exec mysqldump --all-databases -uroot -p"root" > /宿主機地址/xxx.sql