Docker学习

 

 

Docker简介

Docker是一个开源的应用容器引擎,是一个轻量级容器技术。Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像,运行中的这个镜像称为容器,容器启动是非常快速的。

image

Docker安装

  # 1.检查centos内核版本,必须是3.10及以上
  uname -r
  # 升级内核(选做)
  yum update
  # 2.安装docker,输入y确认安装
  yum install docker
  # 3.启动docker
  systemctl start docker
  # 4.开机启动docker
  systemctl enable docker
  # 5.停止docker
  systemctl stop docker
  # 6.查看版本
  docker -v

Docker命令

  # 镜像命令
   
  # 1.搜索(我们经常去https://hub.docker.com上检索镜像的详细信息,如镜像的tag)
  docker search 关键字
   
  # 2.拉取(:tag是可选的,tag表示标签,多为软件的版本,默认是latest最新版本)
  docker pull 镜像名:tag
   
  # 3.列表(查看所有本地镜像)
  docker images
   
  # 4.删除
  docker rmi image-id
   
   
  # 容器命令
   
  # 1.运行
  # -d 后台运行
  # -p 指定端口映射
  # -e 设置参数
  # -v 目录挂载
  # --name 自定义容器名
  # image-name 指定镜像模版
  docker run -d -p 主机端口:容器内部端口 --name container-name image-name
   
  # 2.列表
  # 查看所有容器
  docker ps -a
  # 查看所有运行中的容器
  docker ps
   
  # 3.启动
  docker start container-id
   
  # 4.停止
  docker stop container-id
   
  # 5.删除
  docker rm container-id
   
   
  # 其它命令
   
  # 1.查看日志
  # -f 跟踪日志输出
  # -t 显示时间戳
  docker logs container-id/container-name
   
  # 2.进入容器
  # 进入容器后开启一个新的终端,可以在里面操作
  docker exec -it container-id/container-name /bin/bash
   
  # 3.退出容器
  exit
   
  # 4.重启容器
  docker restart container-id/container-name
   
  # 4.查看版本
  docker -v

安装MySQL

  # 拉取指定版本5.7
  # MYSQL_ROOT_PASSWORD=1234表示root的初始密码
  docker pull mysql:5.7
  docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mymysql mysql:5.7

安装Redis

  # --requirepass 1234 设置密码
  docker pull redis:6.2
  docker run -itd -p 6379:6379 --name myredis redis:6.2 --requirepass 1234
   
  # 连接redis客户端
  docker exec -it myredis /bin/bash
  redis-cli

安装RabbitMQ

  docker pull rabbitmq:management
  docker run -d --name myrabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management

安装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
   
  # 安装ik分词器(可选)
  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文件最后添加一行

  vm.max_map_count=262144

执行/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"]
   
  # 说明:
  # FROM java:8 表示基于jdk8环境;
  # EXPOSE 8089 表示对外暴露的端口是8086
  # VOLUME /tmp 表示挂载到/tmp目录
  # ADD blog-web-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

将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
   
  # 如果想要重新打包构建的话需要停止容器,删除镜像,再重新构建启动就好了

这样就完成啦,是不是很简单!

posted @ 2022-05-13 13:50  满Sir  阅读(134)  评论(0编辑  收藏  举报