docker 简单快速开始
- 1.在Linux系统中安装docker引擎
- 2.启动docker引擎
- 3.快速发布我们的应用
- 4.docker的简单操作
- 1.拉取镜像
- 2.删除镜像
- 3.删除容器
- 4..查看镜像
- 5.查看所有容器
- 6.删除所有镜像
- 7.删除所有容器
- 8.容器的启停操作
- 5.Mysql服务器搭建
- 1.拉取mysql镜像
- 2.启动mysql镜像
- 3.进入mysql容器内查看配置是否成功
- 6.Redis服务器搭建
- 1.首先需要我们拉取redis镜像
- 2.创建redis数据卷目录
- 3. 启动redis镜像
1.在Linux系统中安装docker引擎
在centos中这样子安装,其他版本的Linux可以参考官网
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
这里面的网址最好修改成阿里云的镜像网址,这样的话速度会比较快一点
docker阿里云镜像网址: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.启动docker引擎
在启动docker容器之前我们可以给docker配置一个下载镜像的阿里云或者网易的网址,也可以不配(但是下载镜像速度会慢一点)
- 配置docker镜像地址
- 创建docker目录
mkdir -p /etc/docker
- 修改/etc/docker目录中的damen.json文件
vim daemon.json
输入: {"registry-mirrors":["http://hub-mirror.c.163.com"]}
这里的国内加速网址是网易的,如果用阿里云的话还要登录,太麻烦了,所以就选择使用网易的.
配置完成docker的国内加速网址后,启动docker容器; 如果已经启动那么重启docker容器
启动docker容器
systemctl start docker
重启docker容器
systemctl restart docker
3.快速发布我们的应用
- 首先需要我们一个可以正确运行的jar包(这里基于java语言)
这里需要注意jdk的版本,这里javac用什么版本编译,然后到我们编写Dockerfile文件的时候基础镜像openjdk就需要使用相应的版本 - 将打包好的jar包传输到Linux中
- 编写DockerFile文件
FROM openjdk:17-alpine3.14 # 这里注意版本需要和jar包编译的javac版本一致
ENV workdir=/root/springcloud/eureka-server #设置一个变量
COPY . ${workdir} #将当前文件夹的jar包复制到workdir目录下
WORKDIR ${workdir} #进入这个jar包里面的文件夹
EXPOSE 8761 #对外暴露的端口号,没什么用的,给人看的;实际上的暴露端口在启动镜像的时候指定
CMD ["java","-jar","复制到workdir目录下的文件名"]
- 进入存放DockerFile文件的所在目录,执行构建镜像操作
docker build -t <Reposity>:<tag> .
- : 自定义镜像名称和版本号
- 这里面的"."代表的是当前文件夹,也就是存放Dockerfile的文件夹,主要目的是为了找到Dockerfile文件
注意:这里面的jar包和Dockerfile文件需要放在同一个目录,这样可以避免麻烦
构建镜像成功:
- 启动我们自己构建的镜像,这里需要注意如果jar中有什么重要的文件(比如日志)我们最好使用数据卷将数据备份.
docker run --name myspring3 -dp 8080:8080 myspring:3.0
- -d: 后台启动
- -p:内部映射对外暴露的端口号
- 查看自己的容器是否上线成功
docker ps
- 访问自己的java程序,自己的代码怎么写的就怎样访问进行了.
4.docker的简单操作
1.拉取镜像
docker pull 镜像名称:tag
- 注意:这里如果没有tag默认是latest
2.删除镜像
docker rmi -f 镜像名称:tag|image Id
- -f : 表示强制删除镜像,也就是这个镜像在容器中是上线状态的也强制删除
- 注意:这里如果没有tag默认是latest
- rmi 表示的英文单词: remove image
3.删除容器
docker rm -f 容器名称|容器id
- -f : 表示强制删除容器,就是up状态下的容器也直接强制删除
4…查看镜像
docker images
注意:这里面有很多参数,这里就不一一说明,可以通过docker images --help指令来查看帮助文档
5.查看所有容器
docker ps -a
6.删除所有镜像
docker rmi -f $(docker images -aq)
7.删除所有容器
docker rm -f $(docker ps -aq)
8.容器的启停操作
开启容器: docker start 容器名称|容器id
停止容器: docker stop 容器名称|容器id
5.Mysql服务器搭建
1.拉取mysql镜像
docker pull mysql:5.7
2.启动mysql镜像
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/log:/var/log/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-dp 3306:3306 \
mysql:5.7
# 这里面指定了三个数据卷
-v /root/mysql/log:/var/log/mysql 存储数据库中的日志
-v /root/mysql/data:/var/lib/mysql 存储数据库中的数据
-v /root/mysql/conf:/etc/mysql/conf.d 存储配置文件
- 注意/root/mysql/conf:/etc/mysql/conf.d , 我们需要在/root/mysql/conf目录下创建my.cnf
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
这样可以解决我们的中文数据插入的问题.
3.进入mysql容器内查看配置是否成功
docker exec -it mysql /bin/bash
进入mysql服务输入:
show variables like 'character%';
这里可以通过官网来查看帮助文档
以上:mysql的生产安装就完成了,MySQL集群搭建自行百度,此处只做简单使用
6.Redis服务器搭建
1.首先需要我们拉取redis镜像
docker pull redis:7.0
2.创建redis数据卷目录
注意 : 这里面的redis.conf文件我们可以在redis中去复制过来 ; 就是说我们可以先随便启动一个redis镜像然后进到容器里面复制redis.conf文件中的内容 ;
- 我们可以在任意目录下创建redis.conf文件 , 此处创建文件目录为/root/redis/redis.cof
- 修改redis.conf文件中的内容
- 解除IP绑定
- 将 bind 行注释掉,以解除 Redis 对访问者 IP 的绑定。
- 关闭保护模式
- 关闭保护模式,否则只能本机访问自己
- 关闭守护模式
- 关闭守护模式对于 Redis 容器安装来说非常重要。由于 docker 本身就是以分离模式运行 的,如果 Redis 再以该模式运行,则 Redis 无法启动。
- 指定持久化目录
- 这里要指定 RDB 或 AOF 的持久化目录为/data,这样无论是哪种持久化文件,均会保存 到该目录。后面会指定容器中的/data 目录为数据卷挂载点目录
3. 启动redis镜像
docker run --name myredis \
-v /root/redis/redis.conf:/etc/redis/redis.conf \
-v /root/redis/data:/data \
-dp 6379:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf
# 这里我们是已有配置文件来启动redis服务的
- 这里指定了两个数据卷,其中一个是文件,一个是目录: -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data
- 启动redis镜像
docker run --name myredis \
-v /root/redis/redis.conf:/etc/redis/redis.conf \
-v /root/redis/data:/data \
-dp 6379:6379 \
redis:7.0 \
redis-server /etc/redis/redis.conf
# 这里我们是已有配置文件来启动redis服务的
- 这里指定了两个数据卷,其中一个是文件,一个是目录:
- -v /root/redis/redis.conf:/etc/redis/redis.conf
- -v /root/redis/data:/data