Docker 使用學習
來自專欄總想學點啥1 人贊了文章
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。
按照我的理解,docker 類似一個虛擬機,但是它可以自定義配置為應用發布所需要的最小依賴環境,所以啟動迅速。
首先是安裝docker:
安裝centos7:
對於centos來說,目前的docker-ce安裝需要依賴centos7。經過實際測試,centos6 在升級了系統內核之後還是不能支持最新版本的docker。
安裝好centos7 之後先進行一下yum update操作,更新系統的軟體
然後按照Get Docker CE for CentOS的步驟操作:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
這一步是為了移除之前的docker,因為我們是新裝的系統,其實不需要。
然後配置yum倉庫,因為docker是不斷迭代的,yum默認倉庫中版本可能之後,換為docker官方源
$ 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 --enable docker-ce-edge$ sudo yum-config-manager --enable docker-ce-test$ sudo yum-config-manager --disable docker-ce-edge
最後安裝docker:
$ sudo yum install docker-ce
這樣docker就安裝成功了
二.啟動spring boot mongo項目步驟:
1.新建/usr/clue_app/文件夾
2.複製jar包到目錄下
3.啟動mongo:
docker run –d -–name clue_mongo –p 27017:27017 mongo
4.啟動jar
docker run -d -p 8080:8080 --link=clue_mongo:mongo --name clue_backend -v /usr/clue_app/clue-0.0.1-SNAPSHOT.jar:/usr/clue.jar java java -jar /usr/clue.jar --spring.data.mongodb.host=mongo
-d :後台運行
-p:埠映射
--link:容器鏈接,相當於把clue_mongo 的ip地址加入到本次啟動的容器的hosts
--name:容器名稱
-v:文件映射
常用指令
docker exec clue_backend /bin/bash 進入容器bash
docker inspect <image> 查看鏡像配置
docker rm <container> 刪除容器
docker rmi <image> 刪除鏡像
docker start <container> 啟動容器
docker stop <container> 停止容器
docker ps –a 查看所有容器
docker ps 查看運行中的容器
docker compose
Overview of Docker Compose
項目也可以通過docker-compose啟動,docker-compose主要是解決容器集合運行的問題:
安裝docker-compose
一.安裝docker-compose
1.下載
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
2.更改許可權
sudo chmod +x /usr/local/bin/docker-compose
二.部署項目
1.新建文件夾
2.複製要部署的jar包到文件夾下
3.在文件夾下新建Dockerfile文件
修改內容為:
FROM javaADD . /clue_appWORKDIR /clue_appENTRYPOINT ["java","-jar", "clue-0.0.1-SNAPSHOT.jar"]
FROM 指基礎鏡像
ADD 指將文件加入到鏡像內
WORKDIR 為進入/clue_app文件夾
ENTRYPOINT 為執行的命令,即java –jar clue.jar
4.在文件夾下新建docker-compose.yml文件
修改內容為
version: 3
services:
web:
build: .
ports:
- "8080:8080"
links:
- db
command: ["--spring.data.mongodb.host=db"]
db:
image: "mongo"
expose:
- "27017"
Version 為docker-compose配置文件版本
services 指要啟動的鏡像,分別為web和db
bulid 指根據Dockerfile 創建鏡像
ports 指對外暴露的埠
links 指本容器鏈接的容器,在這裡為db,即我們即將創建的mongo容器
image 指創建容器的鏡像
expose 指對鏈接容器暴露的埠
然後在該目錄下運行 docker-compose up,啟動整個項目涉及的兩個容器
docker-compose down 關閉項目
推薦閱讀:
※Kubernetes中文指南/雲原生應用架構實踐手冊v1.3發布
※喜憂參半的 Kubernetes 生產之路
※華為雲在 K8S 大規模場景下的 Service 性能優化實踐
※Helm安裝
TAG:Kubernetes |