1. docker简介
- Docker 是一个应用打包、分发、部署的工具
- 你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,
- 而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
2. 相关概念
2.1 容器
轻量化的运行实例,包含应用代码、运行时环境和依赖库。通过镜像创建,可以理解为一个简易的linux系统。
2.2 镜像
只读模板,定义了容器的运行环境(如操作系统、软件配置等)。
2.3 仓库
存放镜像的地方,分为公有仓库和私有仓库
3. 安装
- 以macos为例(命令行安装)
brew install --cask docker
- 启动docker
open -a Docker
4.配置镜像加速
- 打开docker-设置- Docker Engine
"registry-mirrors": ["https://docker.m.daocloud.io/","https://huecker.io/","https://dockerhub.timeweb.cloud","https://noohub.ru/","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://xx4bwyg2.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
点击 Apply & Restart 重启 Docker。
- 验证 Docker 运行
docker run hello-world
5. docker常用命令
5.1 帮助命令
docker --version # 显示版本信息
docker info # 显示系统信息
docker 命令 --help # 万能命令
5.2 镜像命令
docker images # 查看所有本地的主机上的镜像# 可选项-a, -all # 列出所有镜像-q, --quiet # 只显示镜像的id
docker search # 搜索镜像# 可选项
--filter=STARS=3000 # 搜索出来的镜像是STARS大于3000的
docker pull # 下载镜像
docker rmi # 删除镜像
docker rmi -f 容器id # 删除指定镜像
docker rmi -f 容器id 容器id 容器id 容器id # 删除多个镜像
docker rmi -f $(docker images -aq) # 删除全部镜像
5.3 容器命令
- 说明: 有了镜像才可以创建容器。下载一个nginx镜像进行测试学习
docker pull nginx
- 新建容器并启动
docker run [可选参数] image# 参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口 (常用)-p 容器端口
-p 随机指定端口
测试,启动并进入容器
(base) 123@myiy ~ % docker run -it nginx /bin/bash
root@70276d8feeeb:/# ls
bin dev docker-entrypoint.sh home media opt root sbin sys usr
boot docker-entrypoint.d etc lib mnt proc run srv tmp var
root@70276d8feeeb:/# exit
- 列出所有运行的容器
docker ps 命令-a # 列出正在运行的容器+历史运行过的容器
-n=? # 最近创建过的容器
-q # 只显示容器的编号
- 退出容器
exit # 直接容器退出并停止
ctrl + P + Q # 容器不停止退出
- 删除容器
docker rm 容器id # 删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器
- 启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
5.4 常见其他命令
- 后台启动命令
docker run -d 镜像名
- 查看日志
docker logs -f -t --tail 容器,没有日志
- 查看容器中进程信息
docker top 容器id
- 查看镜像元数据
docker inspect 容器id
- 进入当前正在运行的容器
docker exec -it 容器id /bin/bash
或者
docker attach 容器id
- 从容器内拷贝文件到主机(拷贝是手动的,未来使用-v卷技术,实现自动)
docker cp 容器id:容器内路径 目的主机路径
6. 作业练习
Docker安装nginx
# 1,搜索镜像
# 2.下载镜像
docker pull nginx
# 3.运行测试
docker run -d --name nginx01 -p 3344:80 nginx-d: 后台运行--name : 给容器命名-p 宿主机端口:容器端口
# 4.进入容器
docker exec -it nginx01 /bin/bash
docker安装tomcat
# 0.官方(用完即删除)
$ docker run -it --rm tomcat:9.0# 1.下载镜像
docker pull tomcat:9.0
# 2.启动运行
docker run -d --name tomcat01 -p 3355:8080 tomcat
# 3.进入容器
docker exec -it tomcat01 /bin/bash