Docker概念
Docker Engine,它是一个客户端 - 服务器应用程序
REST API指定与守护进程交互的接口 ,命令行接口(CLI)与守护进程通信
Docker基本组成
- docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
- docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
maven) - docker镜像(Images):软件打包好的镜像;放在docker仓库中;
- docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
Docker命令
# 版本
docker info
docker version
docker images
# 删除镜像
docker image rm tomcat:9.0.20-jre8-alpine
# 制作镜像压缩包
docker save tomcat:9.0.20-jre8 -o tomcat9.0.20.tar
# 导入镜像
docker load -i tomcat9.0.20.tar
# 镜像信息
docker inspect tomcat:9.0.20-jre8
docker inspect -f {{".Size"}} tomcat:9.0.20-jre8
docker tag 原镜像 新镜像
# 运行容器.-p 主机端口:容器端口(容器端口映射到主机端口)
docker run -it --rm -p 8080:8080 tomcat:9.0.20-jre8-alpine
# 容器名称 tomcat9
docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
# 查看容器
docker ps
# 容器shell
docker exec -it {id} /bin/bash
# 查看log
docker logs -f tomcat9
docker stop tomcat9
docker rm tomcat9
# 创建容器
docker create -it --name tomcat9 -p 8080:8080 9.0.20-jre8-alpine
容器
容器是在隔离环境运行的一个进程,代码和环境打包的集合
网络
# 查看container网络
docker network inspect bridge
# 创建自定义网络
docker network create -d bridge my-lagou-bridge
# 自定义网络
docker create -itd --name --network lagou-bridge tomcat9 -p 8080:8080 9.0.20-jre8-alpine
docker network inspect lagou-bridge
# 容器绑定到lagou-bridge
docker network connect lagou-bridge nginx2
数据卷
- 数据卷可以在容器之间共享数据
- 数据卷默认一直存在,即使容器删除
类型:
- 宿主机数据卷
- 命名数据卷
- 匿名数据卷
docker run -it -v /宿主机目录:/容器目录
Docker Compose
Docker Compose 容器编排工具
docker-compose.yml
4 个一级 key:
- version
- services
- networks
- volumes
# 后台启动
docker-compose up -d
# 停止删除
docker-compose down
Dockerfile
Dockerfile
FROM mysql:5.7.31
# 作者信息
MAINTAINER mysql from date UTC by Asia/Shanghai "laosiji@lagou.com"
ENV TZ Asia/Shanghai
# 制作镜像,--rm :设置镜像成功后删除中间容器
docker build --rm -t 192.168.198.101:5000/lagouedu/mysql:5.7 .