概述
-
简介
- Docker是一个开源的应用容器引擎
- Docker可以让开发者打包他们的应用以及依赖包到一个轻量级的、可移植的容器中,然后发布到任何流行的Linux机器上
- 容器是完全使用沙箱机制,相互隔离
- 容器性能开销极低
- 解决的是软件跨环境迁移的问题
-
安装
- 架构
docker命令
-
服务相关
- 启动:systemctl start docker
- 停止:systemctl stop docker
- 重启:systemctl restart docker
- 查看:systemctl status docker
- 设置:systemctl enable docker
-
镜像相关
- 查看:docker images
- 搜索:docker search 镜像名称
- 拉取:docker pull 镜像名称
- 删除:docker rmi 镜像id
-
容器相关
- 查看正在运行的容器:docker ps #
- 查看所有容器:docker ps -a
- 创建并启动容器:docker run 参数
- -i:保持容器运行
- -t:为容器重新分配一个伪输入终端
- -d:以守护模式运行容器
- -it创建的容器一般为交互式容器,-id创建的容器一般为守护式容器
- –name:为创建的容器命名
- 进入容器:docker exec 参数
- 停止容器:docker stop 容器名称
- 启动容器:docker start 容器名
- 删除容器:docker rm 容器名称
数据卷
-
数据卷
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以被挂在多个数据卷
-
作用
- 容器数据持久化
- 外部机器和容器见解通信
- 容器之间数据交换
-
配置数据卷
- docker run … -v 宿主机目录:容器内目录
-
注意事项
- 目录必须是绝对路径
- 如果目录不存在,会自动创建
- 可以挂载多个数据卷
应用部署
MySQL
1.搜索mysql镜像:docker search mysql
2.拉取mysql镜像:docker pull mysql :5.6
3.创建容器,设置端口映射、目录映射
参数:
4.进入容器,操作mysql
docker exec -it c_mysql/bin/bash
5.使用外部机器连接容器中的mysql
Tomcat
1.搜索tomcat镜像:docker search tomcat
2.拉取tomcat镜像:docker pull tomcat
3.创建容器,设置端口映射、目录映射
4.使用外部机器访问tomcat
Nginx
创建容器,设置端口映射、目录映射
参数:
Redis
1.搜索redis镜像:docker search redis
2.拉取redis镜像:docker pull redis:5.0
3.创建容器,设置端口映射:docker run -id --name=c_redis -p 6379:6379 redis:5.0
4.使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379
Dockerfile
- 镜像原理
- 镜像制作
- 容器转为镜像
- docker commit 容器id 镜像名称:版本号
- docker save -o 压缩文件名称 镜像名称:版本号
- docker load -i 压缩文件名称
- 容器转为镜像
Docker私有仓库
- 私有仓库的搭建
- 将镜像上传到私有仓库
- 拉取镜像