1.docker相关命令
前提是在linux系统中下载好docker 和docker拉取java
进程相关命令
systemctl start docker #开启docker服务
systemctl stop docker #停止docker服务
systemctl restart docker #重启docker服务
systemctl status docker #查看docker服务状态
systemctl enable docker #设置开机启动docker服务
镜像相关命令
docker images #查看本地镜像
docker images -q #查看本地所用镜像
docker pull 镜像名称
docker pull redis #下载最新本版redis
docker pull redis:5.0 #下载5.0版本redis
注:镜像版本在hub.docker.com搜索查看
#删除镜像:删除本地镜像
docker rmi 镜像id或镜像名 #删除镜像
docker images -q #查看所有的镜像列表
docker rmi 'docker images -q' #删除所有本地镜像
容器相关命令
docker ps #查看正在运行的容器
docker ps -a #查看所有容器
创建并启动容器
docker run 参数
· -i:保持容器运行,通常与-t同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
· -t:为容器重新分配一个伪输入终端,通常与-i使用。
· -d:一送守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
· -it:创建容器一般称为交互式容器,-id创建的容器一般称之为守护式容器
· --name:为创建的容器命名
docker run -it --name=c1 mysql:5.7 /bin/bash #创建交互式容器
docker run -id --name=c2 mysql:5.7 /bin/bash #创建守护式容器
docker run -it c2 /bin/bash #进入容器
docker stop 容器名称 #停止容器
docker start 容器名称 #启动容器
docker rm 容器名称 #删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker inspect 容器名称 #查看容器信息
2.dockerfile
·Dockerfile 是一个文本文件
·包含了一条条的指令 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
·对于开发人员:可以为开发团队提供一个完全一致的开发环境
·对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
·对于运维人员:在部署时,可以实现应用的无缝移植
我主要使用dockerfile关键字如下
| 关键字 | 作用 | 备注 |
|---|---|---|
| FROM | 指定父镜像 | 指定dockerfile基于那个image构建 |
| MAINTAINER | 作者信息 | 用来标明这个dockerfile谁写的 |
| ADD | 添加文件 | build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来 源于远程服务 |
| CMD | 容器启动命 令 | 提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD [“command” , “param1”,“param2”] |
注:最后会给出dockerfile全部关键字
#具体代码
mkdir ~/docker-files
cd ~/docker-files
vim centos_dockerfile
dockerfile具体内容
FROM centos:7
MAINTAINER lxs <lxs@lxs.cn>
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
docker build -f ./centos_dockerfile -t lxs_centos:1 . #创建镜像
· -f:镜像文件
· -t:新镜像名
· . 寻址路径
#进入看效果
docker run -it --name=c2 lxs_centos:1
3.发布Springcloud项目
重点来了
先给各位看一下效果图
首先搭建spring Cloud Eureka
1.Eureka是微服务注册中心所有微服务需要再注册中心Spring Cloud Eureka生成服务列表,Spring Cloud Eureka给服务消费者提供服务列表
2.将在IDEA中的微服务项目打包生成jar包,把jar包转移到linux目录下,在docker生成镜像再生成容器,外机(win浏览器)访问服务。
操作如下
win访问效果如下
按照上面的操作把springboot微服务打包成jar,注意上图的DS Replicas下面的ip,172.17.0.2这个ip是注册中心的ip 修改所有微服务需要注册在eureka的ip
接下的操作如同,发布springboot项目
4.整体效果图
最后献上dockerfile关键字大全
| 关键字 | 作用 | 备注 |
|---|---|---|
| FROM | 指定父镜像 | 指定dockerfile基于那个image构建 |
| MAINTAINER | 作者信息 | 用来标明这个dockerfile谁写的 |
| LABEL | 标签 | 用来标明dockerfile的标签可以使用Label代替Maintainer最终都是在 docker image基本信息中可以查看 |
| RUN | 执行命令 | 执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,“param2”] |
| CMD | 容器启动命令 | 提供启动容器时候的默认命令和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD [“command” , “param1”,“param2”] |
| ENTRYPOINT | 入口 | 一般在制作一些执行就关闭的容器中会使用 |
| COPY | 复制文件 | build的时候复制文件到image中 |
| ADD | 添加文件 | build的时候添加文件到image中不仅仅局限于当前build上下文可以来源于远程服务 |
| VOLUME | 定义外部可以挂载的数据卷 | 指定build的image那些目录可以启动的时候挂载到文件系统中启动容 器的时候使用 -v 绑定 格式 VOLUME [“目录”] |
| EXPOSE | 暴露端口 | 定义容器运行的时候监听的端口启动容器的使用-p来绑定暴露端口格 式: EXPOSE 8080 或者 EXPOSE 8080/udp |
| WORKDIR | 工作目录 | 指定容器内部的工作目录如果没有创建则自动创建如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径 |
| USER | 指定执行用户 | 指定build或者启动的时候用户在RUN CMD ENTRYPONT执行的时候的用户 |
| ONBUILD | 触发器 | 当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后会执行 ONBUILD的命令但是不影响当前镜像用处也不怎么大 |
| STOPSIGNAL | 发送信号量到宿主机 | 该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出. |
| SHELL | 指定执行脚本的shell | 指定RUN CMD ENTRYPOINT 执行命令的时候使用的shell |