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属性映射的