赞
踩
yum包更新到最新
yum update
安装需要的软件包 yum-utils提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker,出现选项全部填y,回车(可能会持续15分钟,去干点其他事情把)
yum install -y docker-ce
查看docker版本,看是否安装成功
docker -v
出现下面这行,则代表安装成功
上面我们成功安装了docker,下面我们来安装一下docker-compose,有了这个,我们才能使我们写的docker-compose.yml文件生效
一、将编译好的二进制文件放到我们的linux系统中(这一步时间可能有点久,稍微耐心等一下把)
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
二、设置文件可执行的权限
chmod +x /usr/local/bin/docker-compose
三、查看版本信息
docker-compose -version
阿里云、腾讯云、华为云都有此服务,免费的
这里以阿里云为例子
然后右边就会有加速器地址、教程,跟着操作就行了,这里就不再贴出来了,不懂的评论区留言
第3步之前,可以先在我们的root目录创建一个文件夹,放到里面去,类似下面
- #代表注释
-
- # 进入到root目录
- cd ~
-
- # 创建一个docker-compose文件夹
- mkdir docker-compose
-
- # 进入到这个文件夹中
- cd docker-compose
- #代表注释
-
- # 创建一个文件,用于将我们的jar包生成镜像,有了镜像我们就能生成容器来使用了,这里只是单纯范讲,大家如果想要详细了解docker的话可以自己去看一下b站的课程
- vim Dockerfile
-
- Deckerfile文件如下
-
- # 设置jdk版本
- FROM java:8
-
- # 设置我们的个人信息,大家根据需求随便写
- MAINTAINER xxx <xxx@XXX.com>
-
- # 这两行是设置我们容器内的时间以及jvm的时间(默认不是GMT)
- RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- RUN echo "Asia/Shanghai" > /etc/timezone
-
- # 前面的xxxxxx是我们上传的jar包名称,后面的是我们新命名的jar包
- ADD xxxxxx.jar xxxxxx.jar
- # 执行我们的jar包,xxx是上面刚命名的新名字
- CMD java -jar xxx.jar
-
- 键盘按esc,加英文冒号:,输入wq,回车即可保存
- 快捷键的话可以点击键盘shift+两下Z即可
现在我们的docker-compose文件夹下面就有了一个jar包和一个Dockerfile文件
- #表示注释
-
- # 指定我们docker-compose的版本
- version: "3"
-
- # 设置我们的服务
- services:
-
- # 配置mysql服务
- mysql:
-
- # 这里指定我们的镜像文件,mysql版本是5.7,这里要使用docker命令拉取镜像,这里先写着,后面我教大家怎么拉取镜像
- image: mysql:5.7
-
- # 配置我们容器的名字
- container_name: mysql
-
- # 通过我们的宿主机的3306端口映射到容器里的3306端口,因为容器内的网络与我们外界是不互通的,只有宿主机能够去访问我们的容器,这样我们就能通过宿主机的3306端口去访问容器的mysql了
- ports:
- - "3306:3306"
-
- # 配置环境,主要是配置我们的mysql的登陆密码,mysql容器创建出来默认可以用不同的ip地址访问,所以这里不用进行配置
- environment:
- - MYSQL_ROOT_PASSWORD=root
-
- # 配置挂载的文件夹,在当前文件夹下面创建mysql文件夹,里面有conf,logs,data,分别挂载到容器mysql中的conf.d,logs,mysql中,这样当我们的容器如果没了,但是我们的数据还是在的
- volumes:
- - ./mysql/conf:/etc/mysql/conf.d
- - ./mysql/logs:/logs
- - ./mysql/data:/var/lib/mysql
-
- # 配置redis服务
- redis:
-
- # 设置容器对应的镜像,同上,等下详细讲
- image: redis:5.0
-
- # 设置容器名
- container_name: redis
-
- # 设置命令,这里是用来设置我们的redis登陆密码的,root处是密码,自己根据需求填入即可
- command: redis-server --requirepass root
-
- # 同上,作为端口映射
- ports:
- - "6379:6379"
-
- # 同上,挂载文件夹
- volumes:
- - ./redis:/data
-
- # 配置springboot服务
- springboot:
- # 生成镜像,用.它会自动去当前目录下面去找一个Dockerfile的文件,然后根据里面的配置去生成一个镜像
- build: .
-
- # 指定我们生成的镜像的名字和版本号
- image: springboot:v1.0.0
-
- # 指定容器名
- container_name: springboot
-
- # 同上,做端口映射
- ports:
- - "8080:8080"
-
- # 写清楚我们springboot依赖的服务,有mysql以及redis,这里的名称是service名
- depends_on:
- - mysql
- - redis
- FROM java:8
-
- MAINTAINER PEACEUAI <PEACEUAI@XXX.com>
-
- RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- RUN echo "Asia/Shanghai" > /etc/timezone
-
- ADD xxxxxx.jar app.jar
- CMD java -jar app.jar
- version: "3"
- services:
- mysql:
- image: mysql:5.7
- container_name: mysql
- ports:
- - "3306:3306"
- environment:
- - MYSQL_ROOT_PASSWORD=root
- volumes:
- - ./mysql/conf:/etc/mysql/conf.d
- - ./mysql/logs:/logs
- - ./mysql/data:/var/lib/mysql
- redis:
- image: redis:5.0
- container_name: redis
- command: redis-server --requirepass root
- ports:
- - "6379:6379"
- volumes:
- - ./redis:/data
- springboot:
- build: .
- image: springboot:v1.0.0
- container_name: springboot
- ports:
- - "8080:8080"
- depends_on:
- - mysql
- - redis
docker-compose up
完成之后,等待一段时间即可,启动之后你会发现当前文件夹下面有这几个文件
Dockerfile、jar包、Docker-compose.yml、mysql、redis
如果存在这几个文件即代表成功啦~
这里大家可以先去一个网站找找看适合自己的镜像以及版本,这里我给大家示范一次
网站:hub.docker.com
上图自己找个适合自己的版本
开始拉取镜像
开始先查看一下自己本地有哪些镜像
docker images
刚开始的话,我们会发现没有镜像,开始拉取
- # 这里拉取的是mysql的5.7版本的,自己根据需求改变即可,一定要注意,这个版本一定是官网有的才可用
- docker pull mysql:5.7
- # 拉取redis的5.0版本,自己根据需求变更
- docker pull redis:5.0
之后再根据docker images即可看到已经有两个镜像在本地了
这里再给大家分享几个docker的语法
- #代表注释
-
- # 删除一个镜像,这里示例删除的是一个mysql:5.7版本的,大家根据需求修改即可
- docker rmi mysql:5.7
-
- # 寻找一个镜像,这里示例寻找的是mysql镜像
- docker search mysql
-
- # 开启docker服务
- systemctl start docker
-
- # 关闭docker服务
- systemctl stop docker
-
- # 重启一个docker服务
- systemctl restart docker
-
- # 设置docker服务开机自启动
- systemctl enable docker
-
- # 查看当前的容器状态(未启动的也会显示出来)
- docker ps -a
-
- # 查看当前的容器状态(未启动的不会显示出来)
- docker ps
-
- # 关闭一个容器,xxx即使你查看docker容器最左侧显示的id值
- docker stop xxx
-
- # 开启一个容器
- docker start xxx
-
- # 重启一个容器
- docker restart xxx
-
- # 进入一个容器 同理,xxx也是id值
- docker exec -it xxx /bin/bash
-
- # 退出容器
- exit
-
- # 生成一个新的容器,在我们这个教程不会用到这个 这个不是后台运行,退出容器就会关闭容器,开启完容器默认会进入容器中
- docker run -it mysql:5.7 /bin/bash
-
- # 生成一个新的容器,这个是后台运行,不会默认进入容器中
- docker run -id mysql:5.7 /bin/bash
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。