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

# 如果想要重新打包构建的话需要停止容器,删除镜像,再重新构建启动就好了

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

本文来自博客园,作者:zhanglei-code,转载请注明原文链接:https://www.cnblogs.com/zhanglei-code/p/15423109.html

posted @ 2021-10-19 01:28  zhanglei-code  阅读(37)  评论(0编辑  收藏  举报