Docker实际应用——项目实践

Scroll Down

Docker实际应用——项目实践

在经过无数的拉取各种镜像失败后,成功得到了我们想要的镜像
image.png
我们来试试项目的构建镜像

1.项目配置

项目使用的是spingboot,首先还是得把基础镜像配置好,我们的项目要依赖jdk1.8的镜像,还有就是mysql的配置,redis的配置等。

1.redis的配置

其中redis镜像容器的启动需要带配置文件启动(我尝试找官方镜像的redis配置文件)
image.png

docker run -p 6379:6379 --name redis01 -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes

发现redis并没有启动起来
image.png
查看日志

docker logs -f -t --tail 100 redis01

image.png
缺少文件
可以依赖于dockerfile的创建

FROM centos:7
MAINTAINER xp
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#安装YUM源
RUN yum -y update && yum -y install epel-release && yum -y install redis

EXPOSE 6379

#安装清理缓存文件
RUN yum clean all

#修改绑定IP地址
RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf
#关闭保护模式
RUN sed -i -e 's@protected-mode yes@protected-mode no@g' /etc/redis.conf
#设置密码
RUN echo "requirepass 123456" >> /etc/redis.conf


#启动
ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]
CMD []

编译

 docker build -t="jinglongeat-redis" .

运行容器

docker run -di --name=jinglongeat_redis -p6379:6379 jinglongeat-redis

image.png

2.maven打包

maven插件依赖:

<build>
        <!--镜像名称-->
        <finalName>jinlongeat-api</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--这里写上main方法所在类的路径-->
                <configuration>
                    <mainClass>life.xp.jinglongeat.ApplicationRunner</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <!--私服地址-->
                    <imageName>192.168.10.129:5000/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk1.8</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}
                            </directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!--宿主机开发端口-->
                    <dockerHost>http://192.168.10.129:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

2.应用
查看docker容器日志

docker logs -f -t --tail 100 jinglongeat

image.png
启动成功
image.png
访问成功

3.elasticsearch

docker pull elasticsearch

运行:

docker run --name es1 -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d elasticsearch

如果出现下面问题:
image.png

在/etc/sysctl.conf文件最后添加一行:
vm.max_map_count=262144
执行:
/sbin/sysctl -p

启动成功:
image.png
image.png
image.png
在使用docker容器时,有可能没有安装Vi, 安装Vi:apt-get install vim,如果提示:Unable to locate package vim,则需要敲:apt-get update, 等更新完毕以后再敲命令: apt-get install vim

4.rabbitmq

 docker pull rabbitmq:3.8-managemnet
启动:
docker run -d --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3.8-managemnet

5.zookeeper

docker pull zookeeper

启动:

docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper:latest

image.png
远程服务器:

zkCli.sh -server IP:2181