docker基础学习总结
docker是一个快速安装部署的容器,快捷简单、可以隔离是他的优点
docker也拥有仓库:dockerhub,存储和管理镜像的平台
我们利用docker安装时就是在里面下载镜像,镜像不仅包含应用本身,还包含了其所需要的环境,配置,系统函数库
命令解读
docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
docker run创建并运行一个容器,-d让容器在后台运行
--name 为容器起名,唯一
-p 端口映射,将容器内的端口映射为机器上的端口,以便于外部链接(正常情况是不可以链接的)在集群的时候,宿主机的端口需保持唯一性,docker内的不需要
-e K=V环境变量
mysql 指定运行的镜像的名字 正常情况的命名规范是repository:tag(version,不写tag就是默认最新版本
常用命令
docker pull # 下载
docker push # 上传
docker images # 查所有镜像
docker rmi # 删除指定镜像
docker build # 构建镜像
docker save # 保存镜像,保存为一个压缩包?
docker load # 加载保存的镜像
docker run/rm # 创建并运行容器/删除容器
docker start/stop # 运行一个stop / 停止一个run/start
docker ps # 查看当前容器的状态
docker logs # 查看容器的日志
docker exec # 进入容器内部
数据卷volume 是一个虚拟目录:容器内目录与宿主内目录映射的桥梁
docker volume create # 创建数据卷
docker volume ls
docker volume rm
docker volume inspect # 查看数据卷详情
docker volume prune # 清除数据卷
docker run -v 数据卷:容器内目录 完成数据挂载,没有会自动创建,也就是说,创建完了的容器不能再挂载;当然,你在创建的时候不注明也会产生一个匿名卷(不建议使用匿名卷)
docker run -v 本地目录:容器内目录 可以直接实现本地目录挂载
注意:本地目录必须以./ 或者 / 开头,不然会被识别为数据卷
Dockerfile:文本文件,包含指令,用指令来说明要执行什么操作来构建镜像,以后docker可以通过dockerfile帮我们构建镜像
# 一些dockerfile的基本指令 from centos:7 # 指定基础镜像 env key value # 配置环境 copy ./a.jar /tmp # 拷贝本地目录到指定镜像目录 run # 执行shell命令,一般用于安装一些东西 expose 80 # 暴露端口,无实际作用 entrypoint java -jar a.jar # 镜像中应用启动的指令
docker build -t 镜像名:tag .(这个是指定dockerfile所在的目录,如果是在当前目录,那就用.)
dockercompose:通过一个单独的docker-compose.yml模板定义一组相关联的容器,实现快速部署
docker compose [options] [command] options: -f 指定compose的路径和名称 -p 指定project的名称(有默认 root-xx commands: up down ps logs stop start restart top(查看运行的进程) exec
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2023-04-18 2023/4/18 SCRUM个人博客