Docker简介
Docker是一个开源的应用容器引擎,是一个轻量级容器技术。Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像,运行中的这个镜像称为容器,容器启动是非常快速的。
Docker安装
|
|
|
uname -r |
|
|
|
yum update |
|
|
|
yum install docker |
|
|
|
systemctl start docker |
|
|
|
systemctl enable docker |
|
|
|
systemctl stop docker |
|
|
|
docker -v |
Docker命令
|
|
|
|
|
|
|
docker search 关键字 |
|
|
|
|
|
docker pull 镜像名:tag |
|
|
|
|
|
docker images |
|
|
|
|
|
docker rmi image-id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docker run -d -p 主机端口:容器内部端口 --name container-name image-name |
|
|
|
|
|
|
|
docker ps -a |
|
|
|
docker ps |
|
|
|
|
|
docker start container-id |
|
|
|
|
|
docker stop container-id |
|
|
|
|
|
docker rm container-id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docker logs container-id/container-name |
|
|
|
|
|
|
|
docker exec -it container-id/container-name /bin/bash |
|
|
|
|
|
exit |
|
|
|
|
|
docker restart container-id/container-name |
|
|
|
|
|
docker -v |
安装MySQL
|
|
|
|
|
docker pull mysql:5.7 |
|
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mymysql mysql:5.7 |
安装Redis
|
|
|
docker pull redis:6.2 |
|
docker run -itd -p 6379:6379 --name myredis redis:6.2 --requirepass 1234 |
|
|
|
|
|
docker exec -it myredis /bin/bash |
|
redis-cli |
安装RabbitMQ
|
docker pull rabbitmq:management |
|
docker run -d |
安装ElasticSearch
|
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2 |
|
docker run -d --name myelasticsearch -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:6.3.2 |
|
|
|
|
|
docker exec -it myelasticsearch /bin/bash |
|
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip |
|
|
|
|
|
docker exec -it myelasticsearch /bin/bash |
|
vi /usr/share/elasticsearch/config/elasticsearch.yml |
如果启动报max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
在/etc/sysctl.conf文件最后添加一行
执行/sbin/sysctl -p 立即生效,之后再启动就好了。
部署SpringBoot项目
有了上面这些环境后,接下来就可以部署我们的SpringBoot项目了,以我的博客项目为例:
在服务器中创建一个blog文件夹;
本地使用idea编译打包项目后得到blog-web-0.0.1-SNAPSHOT.jar,上传至服务器blog文件夹中;
本地创建一个Dockerfile文件,内容如下:
|
FROM java:8 |
|
EXPOSE 8089 |
|
|
|
VOLUME /tmp |
|
|
|
ENV TZ=Asia/Shanghai |
|
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone |
|
|
|
ADD blog-web-0.0.1-SNAPSHOT.jar /app.jar |
|
RUN bash -c 'touch /app.jar' |
|
ENTRYPOINT ["java","-jar","/app.jar"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
将Dockerfile文件上传至服务器blog文件夹中;
构建镜像并启动容器,在blog文件夹下执行。
|
|
|
docker build -t blog-web . |
|
|
|
|
|
docker run -p 8089:8089 --name blog-web -d -e JAVA_OPTS="-Xms1024m -Xmx1024m" blog-web |
|
|
|
|
|
docker logs -f blog-web |
|
|
|
|
这样就完成啦,是不是很简单!