安装docker
1、配置阿里云Docker yum源
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、查看Docker版本
# yum list docker-ce --showduplicates
3、安装Docker
# yum install docker-ce-18.03.0.ce 安装指定版本
# yum install docker-ce 安装最新版本
4、启动Docker服务
# systemctl enable docker 开机自启动
# systemctl start docker
初识docker
1、搜索
# docker search tutorial
2、下载容器镜像
# docker pull learn/tutorial
3、测试运行Hello World!
# docker run learn/tutorial echo “hello world”
4、安装ping程序
# docker run learn/tutorial apt-get install -y ping
5、保存对容器做的修改
# docker ps -l 获得ping程序的容器id,然后把这个镜像保存为learn/ping
# docker commit 698 learn/ping 其中698为id 的前段部分
6、运行镜像ping命令
# docker run learn/ping ping www.baidu.com
7、查看容器的信息
# docker ps 获取所有正在运行中的容器列表
# docker inspect efe 其中efe为要查看容器的id前段部分
8、发布自己的镜像
# docker images 获得所有安装过的镜像
# docker push learn/ping 发布镜像
Springboot 项目集成Docker配置
1、pom.xml 插件配置节点
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
2、创建Dockerfile文件
上面蓝色字体所示,要在Springboot项目中main文件夹下新建一名为”docker”的文件夹
如下:
├── pom.xml
└── src
└── main
├── docker
│ └── Dockerfile
编写Dockerfile文件
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
EXPOSE 8080
ADD quick-docker-1.0-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
【保存】
其中quick-docker-1.0-SNAPSHOT.jar 一定要改为自己项目打包后真实的jar包名称,
8080 也要改为项目访问的真实端口
【说明】
FROM:第一条指令必须是FROM,如果在同一个Dockerfile中创建多个镜像时,可以使用多个From指令,(每一个镜像一次)
VOLUME:创建一个挂载点,可以从本机或者其他容器挂载的挂载点,意思是从容器中暴露一部分,和外界共享这块地方,一般存放数据库的数据或者是代码
EXPOSE:告诉Docker服务端容器需要暴露的端口号,供互联系统使用,启动容器的时候需要通过-P(大写),Docker主机会自动分配一个端口转发到指定的端口上,如果是-p(小写),则需要命令中明确指定是哪个本地端口映射过来
ADD:将复制指定的文件到容器中
RUN:在shell终端中运行命令 /bin/sh -c
ENTRYPOINT:配置容器启动后执行的命令,并且不能被dockerrun提供的参数覆盖掉。
每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,也只有最后一个生效。
ENV:创建的时候给容器中加上个需要的环境变量
1、Springboot打包
# mvn package docker:build
# docker images 查看所有的镜像
# docker run -d -p 8080:8080 vector4wang/quick-docker 红色字体代表镜像名称,-p(小写) 注意端口映射的先后顺序【宿主端口:docker内服务端口】
# docker ps 查看docker是否将服务启动成功 up代表成功