应用容器引擎,沙箱机制,可直接使用主机操作系统的资源进行虚拟化
内容:数据管理、构建镜像、部署微服务
应用场景: 解决 成熟项目(例如go语言开发)的部署,端口冲突,mysql版本冲突等
client (build 、pull、run ) ===> host (containers 、images)====> Registory远程仓库
安装Docker (一般基于 Centos7,JDK1.8 以上)
yum install -y docker
三大组件:镜像、容器、仓库
镜像
运行程序,首先要有一个镜像,Docker仓库官网 hub.docker.com
以安装 redis为例 :
1、hub.docker.com 找到redis镜像 ,指定Tags版本号
2、docker pull redis:5 (默认最新版,这个是指定版本为5)
下载速度慢,阿里云提供了加速器 www.aliyun.com
docker images #查看镜像
docker cmi # 删除镜像操作
docker exec -it 容器名字 /bin/bash #进入容器进行操作 (-i 标准输入 , -他给一个伪终端)
ctrl + d 退出容器
docker logs -f 容器名字/容器id #查看日志
ctrl+c 退出
容器:
docker ps # 查看当前运行的容器
docker ps -a #查看所有容器
docker create --name redis -p 16379:6379 redis:5
容器名字 指定端口 当前机器端口号:容器内部端口号 运行镜像
docker start redis #启动容器
docker stop redis #关闭容器
docker run #相当于 create+start
--help #帮助
docker rm 容器名字 -f #强制删除容器
仓库: 官网仓库、阿里云仓库、本地私服
数据卷:
Docker容器运行一个数据库,数据存储在容器之外,主机目录上
create容器时, -v 指定主机目录,挂载到容器中的某个目录,容器就可以写读数据了
1、下载mysql镜像 https://hub.docker.com/percona (mysql衍生版,性能比官网高) ,下载到 /data/mysql-data中
docker pull
2、创建容器
docker create --name percona -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root
3、查看
docker ps -a
docker start percona
cd data/
cd mysql-data/
远程连接数据库测试
把项目做成镜像,然后运行
制作Docker镜像
1、基于jdk8 pull java:8
2、mkdir /temp/eureka
3、上传jar包
4、vim Dockerfile copy内容至文本
5、构建
docker build -t
查看某个容器的ip
docker inspect 容器ID|grep IPAddress