参考:https://blog.youkuaiyun.com/hcyxsh/article/details/118932874
https://blog.youkuaiyun.com/weixin_39305029/article/details/105019334
https://www.bilibili.com/video/BV11L411g7U1?p=4&vd_source=78a44b15bc38828f7be975ede032c8fb
一、什么是docker
Docker也可以被称为轻量级虚拟化技术。与传统的VM相比,它更轻量,启动速度更快,单台硬件上可以同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。
Docker是可移植(或者说跨平台)的,可以在各种主流Linux发布版或者OS X以及Windows上(需要使用boot2docker或者虚拟机)使用。Java可以做到“一次编译,到处运行”,而Docker则可以称为“构建一次,在各平台上运行”(Build once,run anywhere)。
无论你是开发人员、测试人员还是运维人员,随着对Docker越来越深入的了解,你都会爱上它。我们只需要运行几条docker run就可以配置好开发环境,通过Dockerfile或者Docker Hub与他人分享我们的镜像,与其他服务集成,进行开发流程的自动化。
- 开发工程师开发、提交代码到代码服务器(GitHub、 BitBucket、Gitlab等)。
- 代码服务器通过webhook调用CI/CD服务,如Codeship(没 错,就是2014年11月刚融资800万美元的那家初创公司)、
Shippable、CircleCI或者自建Jenkins等。 - CI服务器下载最新代码,构建Docker镜像,并进行测试。
- 自动集成测试通过之后,就可以将之前构建的镜像推送到私有 Registry。
- 运维使用新版的Docker镜像进行部署。
相对于彻底隔离的管理程序虚拟化, 容器一般被认为是不安全的
而另一种观点认为, 虚拟机由于模拟的是一套完整操作系统, 更增加了攻击的范围, 而且还要考虑管理程序构成的潜在危险.
容器有权限隔离监牢 它创建一个完全隔离的目录环境运行进程,如果隔离监牢发现被入侵者攻击,入侵者会因为权限不足而被困在容器目录中,无法对宿主机进行深层次的攻击
二、docker安装
初步学习测试 现在win环境下安装
Docker Desktop是什么?
Docker Desktop是适用于Windows的Docker桌面,是Docker设计用于在Windows 10上运行。
**Dokcer Desktop下载:**桌面版:官网下载 镜像下载
服务器版:服务器版
下载后重启使用
注意
出现下图错误,点击链接安装最新版本的 WSL2
安装好后 配置镜像加速源
可以配置多个 ,
分割
镜像加速器 | 镜像加速器地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
一切就绪后 Windows PowerShell或cmd查看Docker版本docker version
一切正常就可以使用了
三、Docker安装各种软件
安装mysql
docker 中下载 mysql
docker pull mysql
#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#进入容器
docker exec -it mysql bash
#登录mysql
mysql -u root -p //回车输入密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#添加远程登录用户,直接用root账号登录也行。
CREATE USER 'yrzsp'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'yrzsp'@'%';
注意
mysql连接出现1251问题 解决方案:链接
docker 启动mysql 容器出错Ports are not available: listen tcp 0.0.0.0:3306
解决方案链接
或更换端口
docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3450:3306 -itd mysql:latest /bin/bash
使用MySQL
#进入容器
docker exec -it mysql bash
#登录mysql
mysql -u root -p //回车输入密码
使用navicat直接连接
安装Redis
安装最新版 docker pull redis:latest
查看本地镜像docker images
运行容器docker run -itd --name redis -p 6379:6379 redis
查看运行情况docker ps
连接redis
docker exec -it redis-test /bin/bash
redis-cli
使用工具连接redis
三、安装镜像