安装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代表成功