Docker簡介
Docker是一個開源的應用容器引擎,是一個輕量級容器技術,Docker支持將軟體編譯成一個鏡像,然后在鏡像中各種軟體做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像,運行中的這個鏡像稱為容器,容器啟動是非常快速的,
Docker安裝
# 1.檢查centos內核版本,必須是3.10及以上
uname -r
# 升級內核(選做)
yum update
# 2.安裝docker,輸入y確認安裝
yum install docker
# 3.啟動docker
systemctl start docker
# 4.開機啟動docker
systemctl enable docker
# 5.停止docker
systemctl stop docker
# 6.查看版本
docker -v
Docker命令
# 鏡像命令
# 1.搜索(我們經常去https://hub.docker.com上檢索鏡像的詳細資訊,如鏡像的tag)
docker search 關鍵字
# 2.拉取(:tag是可選的,tag表示標簽,多為軟體的版本,默認是latest最新版本)
docker pull 鏡像名:tag
# 3.串列(查看所有本地鏡像)
docker images
# 4.洗掉
docker rmi image-id
# 容器命令
# 1.運行
# -d 后臺運行
# -p 指定埠映射
# -e 設定引數
# -v 目錄掛載
# --name 自定義容器名
# image-name 指定鏡像模版
docker run -d -p 主機埠:容器內部埠 --name container-name image-name
# 2.串列
# 查看所有容器
docker ps -a
# 查看所有運行中的容器
docker ps
# 3.啟動
docker start container-id
# 4.停止
docker stop container-id
# 5.洗掉
docker rm container-id
# 其它命令
# 1.查看日志
# -f 跟蹤日志輸出
# -t 顯示時間戳
docker logs container-id/container-name
# 2.進入容器
# 進入容器后開啟一個新的終端,可以在里面操作
docker exec -it container-id/container-name /bin/bash
# 3.退出容器
exit
# 4.重啟容器
docker restart container-id/container-name
# 4.查看版本
docker -v
安裝MySQL
# 拉取指定版本5.7
# MYSQL_ROOT_PASSWORD=admin表示root的初始密碼
docker pull mysql:5.7
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mymysql mysql:5.7
安裝Redis
docker pull redis
docker run -itd -p 6379:6379 --name myredis redis
# 連接redis客戶端
docker exec -it myredis /bin/bash
redis-cli
安裝RabbitMQ
docker pull rabbitmq:management
docker run -d --name myrabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
安裝ElasticSearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker run -d --name myelasticsearch -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:6.3.2
# 安裝ik分詞器(可選)
docker exec -it myelasticsearch /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip
# 組態檔修改(可選,需要修改或查看時執行)
docker exec -it myelasticsearch /bin/bash
vi /usr/share/elasticsearch/config/elasticsearch.yml
部署SpringBoot專案
有了上面這些環境后,接下來就可以部署我們的SpringBoot專案了,以我的博客專案為例:
在服務器中創建一個blog檔案夾;
本地使用idea編譯打包專案后得到blog-web-0.0.1-SNAPSHOT.jar,上傳至服務器blog檔案夾中;
本地創建一個Dockerfile檔案,內容如下:
FROM java:8
EXPOSE 8089
VOLUME /tmp
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
ADD blog-web-0.0.1-SNAPSHOT.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
# 說明:
# FROM java:8 表示基于jdk8環境;
# EXPOSE 8089 表示對外暴露的埠是8086
# VOLUME /tmp 表示掛載到/tmp目錄
# ADD blog-web-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包復制到鏡像服務里面的根目錄,并改名為app.jar
# RUN bash -c 'touch /app.jar' 表示執行創建app.jar
# ENTRYPOINT ["java","-jar","/app.jar"] 表示執行啟動命令java -jar
將Dockerfile檔案上傳至服務器blog檔案夾中;
構建鏡像并啟動容器,在blog檔案夾下執行,
# 構建鏡像,注意后面有個點
docker build -t blog-web .
# 啟動容器
docker run -p 8089:8089 --name blog-web -d -e JAVA_OPTS="-Xms1024m -Xmx1024m" blog-web
# 查看日志
docker logs -f blog-web
# 如果想要重新打包構建的話需要停止容器,洗掉鏡像,再重新構建啟動就好了
這樣就完成啦,是不是很簡單!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322963.html
標籤:Java
上一篇:資料服務基礎能力之元資料管理
