狂神笔记全
概述
1.出现
- 原来开发上线是两套环境,可能出现在你的电脑上不行,在我的电脑上行等问题
- 环境配置十分麻烦,而且每一个机器都要部署环境
- 后来项目带上环境打包,开发打包部署上线一套流程做完
- Docker解决以上所有问题
软件->发布到应用商店->用户下载
打包项目带上环境->发布镜像到Docker(商店)->用户下载镜像,直接运行
2.特色
- 将镜像隔离(核心思想),不会发生环境冲突,可以将服务器利用到极致
- VM安装虚拟机时相当又装台电脑,资源占用多;Docker容器也是虚拟化技术,但镜像十分轻巧,秒级启动,轻量级容器技术
3.工作
- 传统虚拟机
- Docker容器
- Docker比VM有更少的抽象层,所以更快
4.作用
- 应用更快的交付与部署:打包镜像一键运行
- 更便捷的升级和扩缩容
- 更简单系统运维:开发测试环境高度一致
- 更高效资源利用:内核级别虚拟化,一个物理机上可以有多个容器,服务器性能被压榨到极致
5.核心概念
安装
1.安装步骤
2.没有hyper-v的处理
3.常见问题
常用命令
1.帮助命令
- docker version:查看版本信息
- docker info:查看系统信息
- docker [命令] --help:查看帮助信息
2.镜像命令
- docker images:查看本地镜像
- docker search [镜像名]:搜索镜像
- docker pull 镜像名[:版本]:下载镜像,默认下载最新版latest
- docker rmi [骚操作]:删除镜像
3.容器命令
- docker run [可选参数] 镜像名[:版本]:新建并启动容器
- docker run -it 镜像名 /bin/bash:创建时进入容器
- docker ps [可选项]:查看运行的容器
- docker rm [骚操作]:删除容器
- exit:容器停止并退出
- 快捷键Ctrl+Q+P:容器不停止退出
- 启动停止容器
4.重要常用命令
- docker logs [可选项] 容器名:查看容器日志
- docker top 容器ID:查看容器中运行的进程
- docker inspect 容器ID:查看容器的元数据
- docker exec -it 容器ID /bin/bash:进入容器
- docker attach 容器ID:进入容器
- docker cp 容器ID:容器内路径 目的主机路径:拷贝容器的文件到主机中
- docker cp 目的主机路径 容器id:容器内路径:拷贝宿主机的文件到容器中
5.练习mysql8容器安装
- 拉取mysql8的镜像
docker pull mysql:8
- 查看mysql8镜像是否下载好
docker images
- 利用镜像创建mysql8的容器同时解决编码问题
docker run -d -p 3308:3306 --name ycmysql8 -e MYSQL_ROOT_PASSWORD=a mysql:8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- 查看容器是否启动
docker ps -a
-->docker start ycmysql8启动容器
- 进入容器
docker exec -it ycmysql8 /bin/bash
- 登录mysql
mysql -uroot -pa
- 创建数据库
create database res default character set = 'utf8';
show databases;
use res;
show tables;