5.Spring Boot与Docker

# 5. Docker ## 4.1 简介 **Docker**是一个开源的应用容器引擎, Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使 用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的

4.2 Docker核心概念

  • docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
  • docker客户端(Client):连接Docker主机进行操作;
  • docker仓库(Registry):用来保存各种打包好的软件镜像;
  • docker镜像(Images):软件打包好的镜像;放在docker仓库中;
  • docker容器(Container):镜像启动后的实例称为一个容器;容器独立运行一个或一组应用;

4.3Docker的使用步骤

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

4.4 安装Docker

4.4.1安装Liunx虚拟机

1. 安装虚拟机
		1. VMWare和VirtualBox任选一个;
		2. 下载,安装虚拟机文件;
		3. 启动liunx虚拟机,输入账号密码登录;
		4. 使用liunx客户端访问链接服务器进行命令操作;
		5. 设置虚拟机的[网络]
			- 链接方式:桥接网络
			- 界面名称:单前使用的网卡
			- 接入网线:勾选
		 6. 设置好网络以后使用命令重启虚拟机的网络;
		 ```
		 service network restart
		 ```
		 7. 查看liunx的ip地址
		 ```
		 ip addr
		 ```
		 8. 使用客户端链接即可
2. 在liunx虚拟机上安装docker
2.1 步骤
  1. 检查liunx内核版本,必须是3.10及以上;
uname -r
  1. 安装docker
yum install docker
  1. 启动docker,并查看版本
systemctl start docker
docker -v
  1. 设置开机启动
systemctl enable docker
  1. 关闭docker
systemctl stop docker

4.5 常用命令

4.5.1镜像操作

操作命令说明
检索docker search 关键字 eg:docker search redis我们经常去docker hub 上检索镜像的详细信息,如镜像的TAG
拉取docker pull 镜像名:tag:tag是可选的,tag表示软件的标签,多为软件的版本,默认是lalest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

dockerhub管网

4.5.2容器操作

软件镜像一运行镜像—产生一个容器(正在运行)

1.步骤
  1. 第一步搜索镜像
[root@localhost ~]# docker search tomcat
  1. 拉取镜像
[root@localhost ~]# docker pull tomcat
  1. 根据镜像启动容器
[root@localhost ~]# docker run --name mytomcat -d tomcat:latest
  1. 查看docker中运行的程序
[root@localhost ~]# docker ps
  1. 停止运行中的容器
[root@localhost ~]# docker stop 容器的id
  1. 查看所有的容器
[root@localhost ~]# docker ps -a
  1. 启动一容器
[root@localhost ~]# docker start 容器id
  1. 删除容器
[root@localhost ~]# docker rm 容器id

  1. 启动一个做了端口映射的tomcat
[root@localhost ~]# docker run --name mytomcat -d -p 8888:8080 tomcat:latest
-d:后台运行
-p:将主机的端口映射到docker
  1. 查看防火墙状态
[root@localhost ~]# service firewalld status
  1. 临时关闭防火墙
service firewalld stop
  1. 查看docker日志
[root@localhost ~]# docker logs ad982dfaae3a
  1. 更多的命令
    docker管网文档

4.5.3 安装mysql

  1. 安装mysql
docker pull mysql
  1. 错误的运myqsl行方式
[root@localhost ~]# docker run --name mysql01 -d mysql
2864c50093056e261c4b44c68106d860c8d455350585970e353bfe6cc3b63418
mysql退出了
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
2864c5009305        mysql               "docker-entrypoint..."   19 seconds ago      Exited (1) 19 seconds ago                       mysql01
ad982dfaae3a        tomcat:latest       "catalina.sh run"        15 hours ago        Exited (143) 14 hours ago                       mytomcat

[root@localhost ~]# docker logs 2864c5009305

// 错误日志
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2019-11-07 14:23:05+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
	You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
	这三个参数必须指定一个
  1. 正确的使用
root@localhost ~]# docker run  -p 3306:3306  --name mysq01  -e MYSQL_ROOT_PASSWORD=123456 -d mysql
708a286d1395b55a3988008134aa5302d96e364aac2e971bd3caa96d8fb2fb41
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                 NAMES
708a286d1395        mysql               "docker-entrypoint..."   11 seconds ago      Up 10 seconds               3306/tcp, 33060/tcp   mysq01
ad982dfaae3a        tomcat:latest       "catalina.sh run"        15 hours ago        Exited (143) 15 hours ago                         mytomcat

报错2059 : Authentication plugin ‘caching_sha2_password’ cannot be loaded:

- 接着运行docker exec -it 容器id /bin/bash进入mysql容器
- 再接着输入mysql -u root -p命令,然后输入自己的密码
-  然后输入更新密码语句:ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
- 输入'exit‘ 退出mysql
- 按 ctrl+p+q 退出容器并继续保持容器的运行
- 最后重启mysqldocker restart 容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值