標籤:

Docker 使用學習

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 |