docker
基础知识
- 每一条保留指令都必须以大写字母并且后面至少要跟一个参数
- 指令从上至下顺序执行
- 注释用#表示
- 每条指令都会创建一个新的镜像层并对镜像进行提交
Docker 执行 Dockerfile 的流程
- docker 从基础镜像运行一个容器
- 执行一条指令并对容器作出修改
- 执行类似 docker commit 的操作提交一个新的镜像层
- docker 再基于刚提交的镜像运行一个新容器
- 执行 dockerfile 中的下一条指令直到所有指令都执行完成
四种网络模式
默认为 bridge
网络模式 | 区别 |
---|---|
bridge | 虚拟网桥,为每一个容器分配并设置 ip,将容器都连接到 docker0 |
host | 容器不会虚拟出自己的网卡,也不会配置自己的 ip,而是使用宿主的 ip 和端口 |
none | 容器有独立的 network namespace,但是并没有对其进行任何的网络设置,如 veth pair 和网桥连接,ip |
container | 新创建的容器不会创建自己的网卡和配置自己的 ip,而是和指定的容器共享 ip 和端口范围 |
docker 命令
docker images 查看本地的镜像
docker search 镜像名字:搜索镜像
docker pull 镜像名字:拉去镜像
docker system df:查看镜像/容器/数据卷所占的空间
docker run -it --name 镜像名字 命令 :启动交互式容器 --name为容器指定名字
docker run -d 镜像名字 :启动后台运行的容器
docker rmi 镜像名字id: 删除镜像
docker ps:查看全部启动的容器
docker ps -a:查看全部容器(当前启动中的跟历史上运行过的)
exit:run进去容器,exit退出,容器停止
ctrl+p+q: run进去容器,ctrl+p+q退出,容器不停止
docker start 容器id或者容器名字:启动已停止运行的容器
docker restart 容器id或者容器名字:重启容器
docker stop 容器id或者容器名字:停止容器
docker kill 容器id或者容器名字:强制停止容器
docker rm 容器id:删除已停止的容器
docker rm -f 容器id:强制删除容器
docker logs 容器id:查看日志
docker top 容器id:查看容器内运行的进程
docker inspect 容器id:查看容器内部细节
docker exec -it 容器id bashShell:进入容器,在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。
docker attach 容器id:重新进入容器,直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。
docker cp 容器id:容器内路径 目的主机路径:从容器内拷贝文件到主机上
docker export 容器id > 文件名.tar:导出容器的内容,留作为一个tar归档文件,对应import命令
docker import:从tar包中的内容创建一个新的文件系统再导入为镜像,对应export
docker commit -m=“描述信息” -a=“作者” 容器id 要创建的目标镜像名:[标签名]:提交容器副本使之成为一个新的镜像
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名:容器数据卷
docker run -it --privileged=true --volumes-from 父类 --name 容器名字 镜像名字 : 容器数据卷继承
Docker 安装部署 RabbitMQ
搜索 rabbitmq 镜像
docker search rabbitmq
docker pull rabbitmq
查看镜像文件
docker images
运行 rabbitmq 镜像
docker run -d --name rabbitMQ-01 -p 10000:5672 -p 10001:15672 rabbitmq
-p 10000:5672 的含义
linux 服务器的端口 10000 端口对应 docker 的 rabbitmq 容器的 5672 端口 写了两组端口对应
查看 docker 中正在运行的容器
docker ps
进入到 rabbitMQ 容器中
docker exec -it rabbitMQ-01 /bin/bash
安装可视化插件
rabbitmq-plugins enable rabbitmq_management
测试,出现登录框,表示安装并启动成功
http://ip:10001
Dockerfile
java 开发之 Dockerfile 是什么 (baidu.com)
CMD [“java”, “-jar”, “-Xmx2048m”,"-Xms2048m", “web-site-1.0.jar”, “–server.port=8080”, “–use_proxy=false”]
Docker 学习——Dockerfile 指令详解(五) 顶 - 腾讯云开发者社区-腾讯云 (tencent.com)