win10安裝docker
1. https://hub.docker.com/ 下載docker 並安裝
2. 設置鏡像源: 在docker的設置界面: docker engine 配置:
"registry-mirrors": [ "https://tp6zbrdb.mirror.aliyuncs.com" ]
3. 下載鏡像: https://hub.docker.com/ 點擊 Explore, 輸入你要想的鏡像 進去后 復制命令到本地的cmd 窗口執行即可下載
Docker部署jar包運行
方式一:
1. 上傳jar到服務器的指定目錄
2. 在該目錄下創建Dockerfile 文件
FROM java:8
MAINTAINER laiqiaobo
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
# from java:8 拉取一個jdk為1.8的docker image
# maintainer 作者是bingo
# demo-0.0.1-SNAPSHOT.jar 就是你上傳的jar包,替換為jar包的名稱
# demo.jar 是你將該jar包重新命名為什么名稱,在容器中運行
# expose 該容器暴露的端口是多少,就是jar在容器中以多少端口運行
# entrypoint 容器啟動之后執行的命令,java -jar demo.jar 即啟動jar
4. 創建好Dockerfile文件之后,執行命令 構建鏡像:
// 注意最后的 `.` 表示 Dockerfile 文件在當前目錄下 abc是構建之后鏡像名稱
docker build -t abc .
5. 鏡像構建成功之后,就可以運行容器了
docker run -d --restart=always --name demo -p 8080:8080 abc
這個表示docker容器在停止或服務器開機之后會自動重新啟動
--restart=always -p 宿主端口:容器端口
方式二
運行一個jdk的容器,然后掛載其中的目錄到宿主機,然后運行之后,就可以將需要運行的jar放在宿主機的掛載目錄下,然后每次重新運行docker容器即可。每次發布只需要替換宿主機中的jar包即可
1.准備 jdk1.8的鏡像
2.構建容器, 並映射本地目錄
docker run -d --restart=always -v /C/develop/server:/jar -p 8000:8001 --name=cdemo primetoninc/jdk:1.8 java -jar -Duser.timezone=GMT+08 /jar/mybatis.jar
-v 宿主機目錄:docker中的目錄,在win10下 /C/代表c盤
primetoninc/jdk:1.8 鏡像名:版本號
java -jar -Duser.timezone=GMT+08 /jar/mybatis.jar 啟動命令
常用命令
docker ps // 查看運行中的容器
docker ps -a // 查看所有容器
docker rm xxx // 刪除名為xxx的容器
docker start xxx // 啟動xxx容器
docker stop xxx // 停止容器
docker stats 命令查看實際情況
docker exec -it bfc6039f87f7 /bin/bash //進入某個容器內部
// 修改容器的可用內存大小
docker update -m 300m --memory-swap 1g bfc6039f87f7
參數解釋
-d: 后台運行容器,並返回容器ID;
--name="nginx-lb": 為容器指定一個名稱;
-p: 指定端口映射 主機端口:容器端口
-m :設置容器使用內存最大值,例如: -m 1g 或者 -m 300M
-i: 以交互模式運行容器,通常與 -t 同時使用;
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
--memory="300m" --memory-swap="1g" 代表可使用內存300m,memory-swap為1g
-m 300M --memory-swap -1 代表可使用內存300m,memory-swap為不設上限,
如果值相同,則不能使用swap
docker run 或者 docker update
--cpuset-cpus="" # 允許使用的 CPU 集合
例:--cpuset-cpus "0,6" --cpuset-cpus "0-5"
-c,--cpu-shares=0 # CPU 共享權值(相對權重)
--cpu-period=0 # 限制 CPU CFS 的周期,范圍從 100ms~1s,即[1000, 1000000]
即調度周期,多久重新分配一次cpu
--cpu-quota=0 # 限制 CPU CFS 配額,必須不小於1ms,即 >= 1000
設置在每個周期內容器能使用的 CPU 時間。例如:4核cpu中,調度1s, 配額2s,相當於用50%cpu
設置容器在一個調度周期內能使用的 CPU 時間時實際上設置的是一個上限。並不是說容器一定會使用這么長的 CPU 時間。
--cpuset-mems="" # 允許在上執行的內存節點(MEMs),只對 NUMA 架構有效
docker run 和 docker start 區別
docker run 只在第一次運行時使用,將鏡像放到容器中,以后再次啟動這個容器時,只需要使用命令docker start 即可。 相當於執行了兩步操作:將鏡像放入容器中(docker create),然后將容器啟動,使之變成運行時容器(docker start)。
docker start的作用是,重新啟動已存在的鏡像,可以使用docker ps找到容器的信息。
linux安裝docker
一、環境
本地虛擬機安裝的centos7
二、安裝docker
yum install docker-engine
三、開啟阿里雲加速
docker的鏡像倉庫在國外,下載會很慢,啟用阿里雲加速。
在/etc/docker目錄下創建daemon.json文件,添加如下內容
{
"registry-mirrors": ["https://almtd3fa.mirror.aliyuncs.com"]
}
https://almtd3fa.mirror.aliyuncs.com為阿里雲的加速地址。修改后,重啟docker
systemctl daemon-reload
service docker restart
四、下載java鏡像
下載java鏡像,tag為8u111
docker pull java:8u111
五、執行可運行的jar文件
將test.jar放在虛擬機的/usr目錄下,然后執行命令啟動jar。
docker run -d -p 9090:9090 -v /usr/springboot-1.jar:/usr/springboot-1.jar --name springboot java:8u111 java -jar /usr/springboot-1.jar
-d 表示在后台啟動
-p 9090:9090 表示將容器的端口 映射成宿主主機的端口,否則9090端口訪問不到
-v /usr/springboot-1.jar:/usr/springboot-1.jar 表示將宿主主機的jar文件,映射到容器中(分號前為宿主主機的路徑,分號后為容器中的路徑)
--name springboot表示為該容器取一個全局唯一的名稱,這里我取的名稱為springboot
java:8u111 表示鏡像文件的名稱和tag
java -jar /usr/springboot-1.jar 表示運行jar包,注意:這里的jar包為容器中的位置,是通過前面的-v屬性映射的
