docker簡介及常用命令
----
docker是linux容器的一種解決方案,相比於原來使用的vm虛擬機,有很多優勢,比如啓動時秒級,虛擬機爲分鐘級;硬盤使用MB,vm爲GB;而且性能更接近原生;在系統支持量上面,單機支持上千個容器,而vm只有幾十個。
容器包含:
鏡像 容器 倉庫
對應: 類 實例 (面向對象)
多用於ci/cd 持續集成、持續交付 ,自動化打包部署,自動化測試。 節省資源做更多的事情。
命令:
docker run -i -t // i交互式操作;t終端
docker ps -a // 查看所有容器
docker start [容器id] //
docker stop 容器id
docker restart 容器id
----------- 運行web應用
docker pull traing/webapp // 載入鏡像
docker run -d -p traing/webapp phthon app.py
-d 後臺運行 -p主機端口映射
docker logs -f [容器id]
logs -f =》 tails -200f ....
docker ps 後,可以根據names屬性 進行停職 開始 移除web應用 , 對應 stop start rm [webapp names]
----------鏡像使用
docker images
----------docker compose
yaml 文件配置 docker-compose.yml
編寫Dockerfile文件
執行: docker-compose up 啓動運行整個應用。
docker-compose up -d // 後臺運行
阿里雲Es安裝docker
yum安裝:
$ yum install docker
開機自動啓動
$ service docker start
查看
$ docker version
查看發現報錯:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
使用下面方法:
$ systemctl daemon-reload
$ sudo service docker restart
$ sudo service docker status (should see active (running))
再查看version,成功安裝
部署springboot項目
springboot項目打包 jar包
https://blog.csdn.net/lileLife/article/details/103890550
新建目錄
$ mkdir dcapp
上傳打包後的webapp.jar 包
編寫Dockerfile文件
$ touch Dockerfile
vim Dockerfile
# 基礎鏡像使用java
FROM java:8
# 作者
MAINTAINER lile <[email protected]>
# VOLUME 指定了臨時文件目錄爲/tmp。
# 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中並更名爲app.jar
ADD webapp.jar app.jar
# 運行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
也就是 Dockerfile 和 webapp是在一個目錄,該dockerfile是用於將webapp 打成鏡像的
製作鏡像:
$ docker build -t dcwebapp .
# -t 後面指定該鏡像名爲 dcwebapp 命令後面有個 . !!!
查看鏡像
$docker images
已經制作成功。
啓動容器
先kill掉 前面使用shell運行的 webapp.jar 包,防止端口衝突
$ docker run -d -p 8001:8001 dcwebapp
# -d 後臺運行 -p端口映射,服務器的8001端口映射到容器的8001端口。
下面的長串就是 運行後的容器id
查看運行容器 :
$ docker ps
至此簡單的部署完成 。
日誌查看
使用上面docker ps後的 container id .
docker logs -f -t [container id]
關閉:
docker stop [conatiler id]