SpringBoot-Docker学习

Docker的学习

docker的核心概念

docker核心概念
docker主机:机器上安装了docker程序
docker客户端连接docker主机进行操作
docker支持将我们安装配置好的软件打包成一个镜像,镜像保存在docker仓库的

docker仓库保存好打包好的各种镜像
docker镜像:打包好的镜像
docker容器:镜像启动后的一个实例就是一个实例

从dockerhub下载镜像,使用docker命令安装配置镜像成容器

使用docker的步骤:
1)安装docker
2) 去docker仓库找到这个软件对应的镜像
3)使用docker运行这个镜像,这个镜像就会生成一个docker容器
4) 对容器的启动停止就是对软件的启动和停止

安装docker–linux环境准备

1)安装vmware
2)导入虚拟机
3)开启虚拟机

使用smarTY来连接服务器

ctr+H  打开浏览器历史记录
service network restart   #重启虚拟机的网络

ip addr  #查看linux的ip地址
ifconfig   #查看linux的ip地址

省略。。。。。。。。。。。。。。。。

linux上docker安装,启动,停止

在这里插入图片描述
1 先查看centos内核版本,版本要在3.10以上

   uname -r  #1查看centos内核版本

在这里插入图片描述
2 安装docker

yum install docker  #安装docker

但是在我安装的过程中出现一个问题:

Another app is currently holding the yum lock; waiting for it to exit...在这里插入图片描述
解决办法:
因为已经有一个yum进程在运行了,使用kill干掉它:


# kill -s 9 25960
# ps aux|grep yum
root      6744  0.0  0.0 103260   900 pts/1    S+   14:59   0:00 grep yum
root     25960  0.0  0.0      0     0 ?        Z    Sep19   0:01 [yumBackend.py] <defunct>

如果没有成功的话可以强制关掉yum进程

rm -f /var/run/yum.pid

解决后就可以再次使用yum install docker进行安装了
然后确认安装
在这里插入图片描述

安装完成以后启动docker

systemctl start docker  #启动docker

查看docker的版本好看是否启动或者有docker

docker -v

在这里插入图片描述

虚拟机一开机就启动docker

systemctl enable docker

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210405165301155.png?x-oss-process=image/watermark,type_ZmFuZ3在这里插入图片描述

停止docker

systemctl stop docker

在这里插入图片描述

// An highlighted block

docker update 容器名 --restart=always
#例如我想要Redis在docker启动时就启动
docker update Redis --restart=always

docker镜像的常用操作命令

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210405165605900.png?x-oss-process=image/watermark,type_在这里插入图片描述
搜索镜像

docker search mysql  #搜素与mysql有关的镜像

在这里插入图片描述
然后从docker hub仓库拉取镜像使用命令

docker pull 镜像名:tags

如果是docker pull 镜像名,默认是下载lastest的
镜像名可以是搜索出来的全名称也可以是如下图的io/后面那部分名称
在这里插入图片描述
tags:可以如docker hub上百度一下有啥版本的
在这里插入图片描述
此处我下载的是8.0版本的mysql在这里插入图片描述
在这里插入图片描述

查看有多少镜像,使用命令

docker images  #查看有多少镜像

在这里插入图片描述

在这里插入图片描述

删除指定镜像

docker rmi image_id(镜像id)

docker容器的常用操作命令

得到镜像(类似qq.exe)—》运行镜像—》产生一个容器(运行的QQ)

1 搜索镜像

docker search tomcat

2 安装镜像
在这里插入图片描述

下载慢的话可以使用阿里云的镜像加速器

3 启动容器

docker run --name container_name -d image_name:tags  #启动镜像
docker run --name container_name -d image_name #启动镜像
--name  给容器起名字
-d 后台运行
image_name  镜像的名称

在这里插入图片描述

docker run --name  mytomcat_jdk8 -d  tomcat:jdk8  #启动容器

在这里插入图片描述

4 使用docker ps 命令查看有哪些容器在运行

docker ps

在这里插入图片描述
因为访问直接使用虚拟机ip和tomcat的端口是访问不到docker里面的tomcat容器,所以还需要进行一些配置
在这里插入图片描述
5 停掉容器mytomcat_jdk8

停止容器:

docker stop  容器id或者容器名称    #停止容器

然后可以使用docker ps 进行查看
在这里插入图片描述

docker ps  -a  #查看所有的容器

在这里插入图片描述

启动容器

docker start 容器id  #启动容器

删除容器

docker rm 容器id  #删除容器

注意删除容器使用rm,删除镜像使用rmi
在这里插入图片描述
现在做一个可以访问的tomcat容器,要配置映射关系
比如将虚拟机的8888端口映射到docker的tomcat的80端口
就需要在初始化一个容器的时候添加端口映射使用-p这个参数配置

启动一个配置端口映射的tomcat容器

[root@localhost ~]# docker run --name mytomcat_jdk8 -d -p 8888:8080 tomcat:jdk8
-d:后台运行
-p 虚拟机端口:配置的容器端口
tomcat:jdk8   镜像:tags嘛

在这里插入图片描述
在这里插入图片描述
然后访问ip:http://192.168.64.128:8888/

就可以访问到了,但前提是你得关闭防火墙或者开放8888端口,不然就是
在这里插入图片描述

查看防火墙的命令

service firewalld status

我的防火墙还是开着的
在这里插入图片描述
所以现在要开放8888端口


firewall-cmd --add-port=8888/tcp --permanent

在这里插入图片描述
查看开放的端口列表

firewall-cmd --list-port
[root@localhost ~]# firewall-cmd --list-port

在这里插入图片描述
如果你不选择开放端口这种方式可以使用关闭防火墙的方式

service firewalld stop #关闭防火墙

查看容器的日志

docker logs 容器id

在这里插入图片描述

其他的一些命令

docker ps -l   查看最后一次运行的容器
docker ps -f status=exited   查看停止的容器
docker run -it --name=mycentos centos:8 /bin/bash
创建交互式容器mycentos  ,/bin/bash是linux中的命令解析器,会进入到容器里面命令行

exit  退出容器(注意是在容器内部执行的容器)或者按ctrl+p+q

docker kill 容器名称|容器id  强制停止正在运行的容器

docker stop 容器id  停止正在运行的容器

docker stop `docker ps -a -q`  停止所有在运行的容器

登录到已启动的容器:docker exec -it 容器名 /bin/bash

exit 只退出不停止容器

安装mysql redis elasticsearch

安装mysql

之前已经安装过mysql,所以直接mysql的容器化
在这里插入图片描述

如果出现异常可以将已经产生的容器数据删除掉
使用命令`docker rm 容器id

这样子的容器化的是不行的,没有端口映射`,所以使用-e参数进行端口映射配置

docker run -p 3306:3360 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-e:设置参数
-v  把主机的/my/custom文件夹挂载到mysqldocker容器的/etc/mysql/conf.d文件夹里面

启动mysql容器化的时候要指定MYSQL_ROOT_PASSORD,MYSQL_ALLOW_EMPTY_PASSWORD,MYSQL_RANDOM_ROOT_PASSWORD三个参数中的一个,不然报错
在这里插入图片描述

启动带有端口映射的mysql容器

docker run -p 3306:3306 --name mysql8-1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0

然后使用mysql客户端管理工具进行连接了

想要知道其他的命令可以查看docker的官网啥的

其他的命令操作

docker run --name mysql8-2 -v /conf/mysql:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:8.0

把主机下自创的/conf/mysql文件夹挂载到mysql的docker容器的/etc/mysql/conf.d文件夹里面,改mysql的配置文件就只需要把mysql配置文件放在我们自创的文件下就好了,它就会合并与原来的mysql配置文件




指定mysql的一些其他参数
docker run --name mysql8-1 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

docker安装redis

搜索redis镜像
在这里插入图片描述
拉取镜像
在这里插入图片描述
启动redis容器

 docker run -itd --name redis3.0.5 -p 6379:6379 redis:3.0.5

参数说明:-i :以交互模式运行容器通常与-t同时使用
-t 为容器重新分配一个伪终端,通常与i同时使用
-d 后台运行
-e 设置环境变量
-dns 8.8.8.8 指定容器使用呃dns服务,默认与宿主主机一样
在这里插入图片描述
测试
windows系统下打开redis目录–cmd–输入命令
在这里插入图片描述

安装elasticsearch

$ docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

在这里插入图片描述

 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d elasticsearch:6.8.12
 
JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值