springboot005Docker
五、Docker
1. 简介
Docker是一个开源的容器引擎
Docker支持将软件编译成一个镜像,然后镜像中对各种软件做好配置,再将镜像发布出去,其他用户就可以直接使用这个镜像。
运行中的镜像被称为容器,容器的启动时非常快的。
2. 核心概念
docker主机(Host):安装了docker程序的机器(docker直接安装在操作系统上的)
docker客户端(Client):连接docker主机进行操作
docker仓库(Registry):用来保存各种打包好的软件镜像
docker镜像(Images):软件打包好的镜像,放在docker仓库中
docker容器(Container):镜像启动后的实例称为容器,容器是独立运行的一个或一组应用
docker的使用步骤:
- 安装Docker
- 去Docker仓库找到所需软件的镜像
- 使用Docker运行这个镜像,这个镜像就会生成一个Docker容器
- 对容器的启停,就是对这个软件的启停
3. 安装Docker
1. 安装虚拟机
安装VMWare、VirtualBox
在虚拟机中新建虚拟机实例(或导入已有的虚拟机镜像)
启动虚拟机,并使用root用户登录(root/zhangjiahui)
使用客户端连接linux服务器进行命令操作
设置虚拟机的网络
- 桥接网络 --> 选择本机的网卡(查看宿主机网络连接使用的网卡)
设置IP信息,并重启网络服务
- 设置网络为固定IP地址方式(centos7 --> vi /etc/sysconfig/network-scripts/ifcfg-ens33)
DEVICE=”ens33”
TYPE=”Ethernet”
DEFROUTE=”yes”
ONBOOT=”yes”
HAADDR=”00:0C:29:A3:C5:51”#根据自己虚拟机对应的网卡信息配置
IPADDR=”192.168.116.10”
GATEWAY=”192.168.116.2”
NM_CONTROLLED=”no”
DNS1=”8.8.8.8”
NETMASK=”255.255.255.0”
重启网络服务
centos7的网卡重启方法 1、centos6的网卡重启方法:service network restart
centos7的网卡重启方法:systemctl restart network
2、DNS配置文件:cat /etc/resolv.conf
设置主机和IP绑定信息:cat /etc/hosts
设置主机名:cat /etc/hostname
3、可以使用nmtui文本框方式修改IP
4、关闭防火墙并设置开机不启动
查看防火墙状态:systemctl status firewalld.service
关闭:systemctl stop firewalld
开启:systemctl start firewalld
开机自动关闭:systemctl disable firewalld
开机自动启动:systemctl enable firewalld
查看开机是否启动:chkconfig --list|grep network(RHLE6)
5、临时和永久关闭Selinux
临时关闭:
_getenforce
Enforcing
_setenforce 0
setenforce:SELinux is disabled
永久关闭:
_vim /etc/selinux/config
- 通过ssh连接到linux虚拟机
2. 在CentOS 7上安装Docker
步骤:
- 检查内核版本(必须是3.10以上)
#检查linux内核版本uname -r
- 安装docker
#docker安装命令yum install docker
#中间提示输入y
y
- 启动docker
#启动dockersystemctl start docker
#查看docker版本号
docker -v
- 设置docker开机启动
#docker开机启动设置命令systemctl enable docker
#命令执行结果提示内容
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
- 停止docker
#docker停止命令systemctl stop docker
4. Docker常用操作及命令
1. 镜像操作
#检索 ##https://hub.docker.com#usage: docker search 关键字
docker search mysql
#拉取
#usage: docker pull 镜像名[:镜像tag] #不带tag,则默认为latest
docker pull mysql:5.5
#本地镜像列表查看
#usage: docker images
docker images
#删除已下载的本地镜像
#usage: docker rmi 镜像ID ##镜像ID可通过 docker images 命令查看
docker rmi f991c20cb508
2. 容器操作
软件镜像 --> 运行镜像 --> 产生容器(即正在运行中的软件)
#搜索镜像docker search tomcat
#拉取镜像
docker pull tomcat
#根据镜像,启动容器
docker run --name mytomcat -d tomcat:latest
# --name 自定义容器名
# -d 后台运行
#查看在运行中的容器
docker ps
#停止运行中的容器 ##id可通过 docker ps 命令查看
docker stop d41fcf7ec705 #容器ID
docker stop mytomcat #容器name
#查看所有的容器(包括运行中的和已经退出的)
docker ps -a
#启动已经存在并退出的容器 ##id可通过 docker ps -a 命令查看
docker start d41fcf7ec705 #容器ID
docker start mytomcat #容器name
#删除已存在的容器
docker rm d41fcf7ec705 #此时容器必须已经停止
docker rm -f d41fcf7ec705 #此时容器可以在运行状态
#重命名容器
docker rename d41fcf7ec705 myTomcat1
docker rename mytomcat myTomcat1
#启动一个做了端口映射的tomcat容器
docker run -d -p 8888:8080 tomcat:latest
# -p HOST_PORT:CONTAINER_PORT 将主机端口映射到容器内部的一个端口
#主机的防火墙已经关闭,查看状态
service firewalld status
#查看容器运行日志
docker logs d41fcf7ec705
docker logs mytomcat
#更多常用命令
1. https://docs.docker.com/ee/
2. 参考docker hub上每个镜像的使用手册
5. 安装常用软件镜像
1. 安装并启动mysql
安装&启动命令:
docker run --name mysql03 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zhangjiahui -d mysql:latest
远程客户端连接问题修复:
连接Docker启动的mysql出现:ERROR 2059 (HY000): Authentication plugin "caching_sha2_password" cannot be loadedC:mysqldata>mysql -h 127.0.0.1 -P 13306 -uroot -p
Enter password: ****
ERROR 2059 (HY000): Authentication plugin "caching_sha2_password" cannot be loaded: ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£
解决方案:
1.进入mysql容器
docker exec -it mysql2 /bin/bash
2.进入mysql
mysql -uroot -pzhangjiahui
3.修改密码默认加密方式
ALTER USER "root"@"%" IDENTIFIED WITH mysql_native_password BY "root";
4. 修改root密码
alter user "root"@"%" identified by "zhangjiahui";
flush privileges;
几个高级的操作
1. docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
-v : 把主机的/my/custom文件夹挂载到/etc/mysql/conf.d文件夹,修改配置只需要修改/my/custom下的配置文件即可
2.
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
以上是 springboot005Docker 的全部内容, 来源链接: utcz.com/z/510425.html