1 安装docker的硬件要求
机器要求:系统可以为Ubantu或是Centos7 或是Red Hat 7
部署大型的微服务项目,内存要求:16G
2 安装docker
2.1 更新当前的yum环境
yum update
2.2 yum方式安装docker
yum install docker
2.3 启动docker
systemctl start docker #启动
systemctl stop docker #停止
systemctl enable docker #开机自启动docker
2.4 拉取镜像
docker pull mysql:latest #拉取mysql镜像
docker pull tomcat:8 #拉取tomcat镜像
docker pull redis #拉取redis
docker pull centos:7 #拉取centos7镜像
3 使用docker命令查看容器
3.1 查看所有容器
docker images #查看所有拉取的镜像
3.2 查看所有容器的状态
docker ps -a #查看镜像状态
3.3 查看某个容器的ip及其他各项数据
docker inspect 容器名称
3.4 删除某个容器(必须停掉容器)
docker rm 容器名称
4 使用docker命令开启动容器
- -it 表示后台启动,运行容器后直接进入容器
- -id 表示前台启动,运行容器后不能直接登录容器
- -p 表示端口映射,宿主机端口:容器端口
- -e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
- –name 表示容器的名称
- -v 表示目录映射关系,宿主机目录:容器目录;可以使用多个-v来做目录映射,宿主机的内容修改了,容器中的内容会同时会修改
- –privileged==true 表示权限 ,使用该命令表明容器中的root就有了root的权限,否则只是一个普通用户
4.1 使用docker命令启动mysql
#1创建容器并启动
docker run -it --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123' IMAGE ID
docker run -it --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123' (容器名称:版本)
#2 进入mysql容器
docker exec -it 容器名称 /bin/bash
#3 退出容器的命令
exit
注:在docker中,拉取的mysql的镜像为最新版;在mysql8中,添加了新特性:caching_sha2_password加密策略。若使用Navicat 12版本进行远程连接时会报错,Navicat 12 以下不支持该加密方式,只支持mysql_native_password这种加密方式。
解决方法:创建新用户,并给用户授权(修改加密规则和密码策略时要更换密码)
#1 进入mysql
mysql -u root -p password
#2 创建用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
#2.1 授权
GRANT ALL ON *.* TO 'root'@'%';
#2.2修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
#2.3 修改数据库的密码策略
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
#2.4 刷新
flush privileges;
4.2 使用docker命令启动tomcat
#1 创建并启动tomcat容器
docker run -id --name=容器名称 -p 9000:8080 -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileges=true 容器id/容器名称:版本
#2 关闭容器
docker stop 容器名称
#3 启动容器
docker start 容器名称
4.3 使用docker命令启动redis
#1 创建容器
docker run -id --name=容器名称 -p 6379:6379 镜像id/容器名称:版本
docker run -id --name=redis -p 6379:6379 dcf9ec9265e0/redis:latest(latest可以省略)
#2 启动客户端测试
redis-cli -h 宿主机ip -p 6379
4.4 使用docker命令启动nginx
docker run -id --namer=容器名称 -p 90:80 231d40e811cd/nginx
5 使用docker进行备份和迁移
5.1 将容器保存为镜像
#此镜像就是当前容器的内容
docker commit 容器名称 镜像名称
docker commit tomcat tomcat—mir
5.2 镜像备份
docker save -o 文件名.tar 镜像名
docker save -o tomcat.tar tomcat
5.3 镜像的恢复与迁移
首先删除镜像,再执行恢复
docker load -i .tar镜像文件
docker load -i tomcat.tar