睁眼写BUG,闭眼改BUG。

Spring Boot_Docker

2020.03.02

上一篇 >> Spring Boot_开发

下一篇 >> Spring Boot_数据访问

fighting!fighting!

1. 简介

Docker是一个开源的应用容器引擎;

2. 核心概念

docker主机(Host):安装了Docker程序的机器(Docker 直接安装在操作系统之上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用来保存个中打包好的软件镜像;

docker镜像(Images):软件打包好的镜像; 放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器; 容器是独立运行的一个或一组应用

使用Docker的步骤:

  • 安装Docker
  • 去Docker仓库找到这个软件对应的镜像
  • 使用Docker运行这个镜像, 这个镜像就会生成一个Docker容器;
  • 对容器的启动停止就是对软件的启动停止

3. 安装Docker

3.1 安装linux虚拟机

VMWare、virtuBox

3.2 在linux虚拟机上安装docker

步骤:

1.检查内核版本3.0+
uname -r
2.安装docker
yum install docker
3.输入y确认安装
4.启动docker
systemctl start docker
docker -v
5.设置开机启动docker
systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6.停止docker
systemctl stop docker

4. 常用操作

4.1 镜像操作

1.搜索镜像
docker search mysql
2.拉取镜像
docker pull mysql
docker pull mysql:5.5
3.查看所有镜像
docker images
4.删除镜像
docker rmi image-id

4.2 容器操作

软件镜像(qq安装程序) >> 运行镜像 >> 产生一个容器(正在运行的软件, 运行的qq)

步骤:

1.搜索镜像
docker search tomcat
2.拉去镜像
docker pull tomcat
3.根据镜像启动容器
docker run --name mytomcat -d tomcat:latest #-d 后台运行tomcat
docker ps #查看哪些容器在运行
4.停止运行中的容器
docker stop container-id
5.查看所有容器
docker ps -a
6.启动容器
docker start container-id
7.删除容器
docker rm container-id 
8.启动一个做了端口映射的tomcat
-d :后台运行
-p :将主机端口映射到容器的一个端口  主机端口:容器内部的端口
docker run -d -p 8888:8080 tomcat
9.为了演示简单关闭了linux的防火墙
service firewalld status :查看防火墙状态
service firewalld stop :关闭防火墙
10.查看容器日志
docker logs container-id

11.更多命令
https://docs.docker.com/engine/reference/commandline/docker/

一个镜像可以启动多个容器:

docker run -d -p 8887:8080 tomcat
docker run -d -p 8888:8080 tomcat
docker run -d -p 8889:8080 tomcat
# 相当于三个tomcat

5. 环境搭建

5.1 安装mysql

docker search mysql
docker pull mysql
docker images
docker run --name mysql01 -d mysql
docker ps # 没有mysql
docker ps -a # 发现异常退出
docker logs container-id # 查看日志
docker rm container-id
docker run --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker ps
docker stop container-id
docker run -p 3306:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

错误的启动

docker run --name mysql01 -d mysql # 无密码

docker run --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql # 端口未映射

正确的启动

docker run -p 3306:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

几个其他的高级操作

docker run --name mysql04 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
把主机的/my/custom文件挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8b4 --collation-server=utf8mb4_unicode_ci
指定mysql的一些参数