一、安装Docker
#安装
yum install docker
#查看
docker --version
#启动/重启
systemctl start/restart docker
二、安装redis
- docker run表示运行的意思
- --name myredis 表示起个名字叫myredis
- -p 6379:6379表示把linux服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口
- -d 表示以后台服务形式运行redis
- redis redis-server --appendonly yes表示开启持久化缓存模式,可以存到硬盘
#拉取镜像
docker pull redis
#运行容器
docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes
三、安装mysql(注意复杂指令要手敲)
#拉取镜像
docker pull mysql:5.7.27
#运行容器(保存头像)
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:5.7.27 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
配置mysql数据库的远程连接
注意:mysql数据库连接的是mysql容器,一旦容器删除,数据库需要重新部署
连接远程数据库
四、安装RabbitMq
rabbitmq默认本地登录用户名是guest,如果是云服务器,需要重新设置用户名,并与application.yml中的一致
docker run -d --hostname my-rabbit --name myrabbit -e RABBITMQ_DEFAULT_USER=huangjian -e RABBITMQ_DEFAULT_PASS=1234 -p 15672:15672 -p 5672:5672 rabbitmq:management
五、安装ElasticSearch
#系统配置
sysctl -w vm.max_map_count=262144
#运行镜像
docker run -p 9200:9200 -p 9300:9300 -d --name es_643 elasticsearch:6.4.3
#进入容器
docker exec -it es_643 /bin/bash
#修改cluster-name,与application.yml中一致
vi /usr/share/elasticsearch/config/elasticsearch.yml
#安装中文分词插件
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
进入es配置文件位置: /usr/share/elasticsearch/config/elasticsearch.yml,修改cluster.name为application.yml中的
退出并重启镜像
exit
docker restart es_643
六、构建eblog的docker镜像
1、进入Springboot项目,通过Git bash here打包项目
# 打包 mvn clean package -Dmaven.test.skip=true
2、创建一个文件夹eblog,把项目 eblog-0.0.1-SNAPSHOT.jar 包放进去,然后将Dockerfile文件(vim Dockerfile)也放进去,Dockerfile内容如下:
FROM java:8
EXPOSE 8080
VOLUME /tmp
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
ADD eblog-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
- FROM java:8 表示基于java8镜像构建新镜像,必须作为第一个指令
- EXPOSE 8080 表示对外暴露的端口是8080
- VOLUME /tmp 表示挂载到/tmp目录 ,其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
- ADD eblog-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包复制到镜像服务里面的根目录,并改名为app.jar
- RUN bash -c 'touch /app.jar' 表示执行创建app.jar
- ENTRYPOINT ["java","-jar","/app.jar"] 表示执行启动命令java -jar
3、进入eblog文件夹,安装Dockrfile的命令,把eblog-0.0.1-SNAPSHOT.jar构建成docker的镜像
#构建镜像(注意后面有个点)
docker build -t eblog .
#查看新镜像
docker images
七、启动项目(即新建容器)
容器名:application.yml中的别名
docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbitmq --link mymysql:emysql --link myredis:eredis -d eblog
-p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口 --link es:ees 表示关联容器,把容器es起别名为ees
查看eblog打印日志(一定不要忘记执行,否则无法运行)
docker logs -f eblog
八、重新部署项目
#停止eblog容器
docker stop eblog
#删除eblog容器
docker rm eblog
#删除eblog镜像
docker rmi eblog