1. 程式人生 > >Docker 搭建javaweb執行環境

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