docker 基础(二)

常见命令

Docker最常见的命令就是操作镜像、容器的命令,详见官方文档:https://docs.docker.com/

数据卷

命令 说明 文档地址
docker volume create 创建数据卷 docker volume create
docker volume ls 创建数据卷 docker volume ls
docker volume rm 查看所有数据卷 docker volume rm
docker volume inspect 查看某个数据卷的详情 docker volume inspect
docker volume prune 清除数据卷 docker volume prune
  • 在执行docker run命令时,使用 -v 本地目录:容器内目录 可以完成本地目录挂载。
  • 本地目录必须以'/'或'./'开头,如果直接以名称开头,会被识别为数据卷而非本地目录。
  • -v mysql:/var/lib/mysql 会被识别为一个数据卷叫做mysql。
  • -v ./mysql: /var/lib/mysql 会被识别为当前目录下的mysql目录。

自定义镜像

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

指令 说明 示例
FROM 指定基础镜像 FROM centos:6
ENV 设置环境变量,可在后面指令使用 ENV key value
COPY 拷贝本地文件到镜像的指定目录 COPY ./jre1l.tar.gz /tmp
RUN 执行Linux的shell命令,一般是安装过程的命令 RUN tar -zxvf /tmp/ire1l.tar.gz&& EXPORTS path=/tmp/jre1l:$path
EXPOSE 指定容器运行时监听的端口,是给镜像使用者看的 EXPOSE 8080
ENTRYPOINT 镜像中应用的启动命令,容器运行时调用 ENTRYPOINT java -jar xx.jar

更加详细的语法说明,请参考官方文档:https://docs.docker.com/engine/reference/builder

docker build -t myImage:1.0 .

  • -t 是给镜像起名,格式依然是repository:tag 的格式,不指定tag时,默认是latest
  • .:是指定Dockerfile所在目录,如果就在当前目录,则指定为 "."。

网络

默认情况下,所有容器都是以bridge当时连接到docker的一个虚拟网桥上。

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

命令 说明 文档地址
docker network create 创建一个网络 docker network create
docker network ls 查看所有网络 docker network ls
docker network rm 删除指定网络 docker network rm
docker network prune 清除未使用的网络 docker network prune
docker network connect 使指定容器连接加入某网络 docker network connect
docker network disconnect 使指定容器连接离开某网络 docker network disconnect
docker network inspect 查看网络详细信息 docker network inspect
相关推荐
魂之木3 分钟前
【零基础教程】基于Docker的RabbitMQ部署方案
分布式·docker·微服务·rabbitmq
星哥说事3 分钟前
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台
运维·服务器·docker
Mr.徐大人ゞ1 小时前
Docker 详解与部署微服务实战
docker·微服务·容器
runfarther1 小时前
CentOS7.5下安装Docker和Docker-Compose,并支持host-gateway特性
docker·docker compose
oMcLin1 小时前
如何在 RHEL 8.4 上实现高效的 Docker 容器网络配置,优化跨容器的通信速度与可靠性?
docker·容器
江湖有缘14 小时前
Jump个人仪表盘Docker化部署教程:从0到 搭建专属导航页
运维·docker·容器
Lam㊣14 小时前
Centos 7 系统docker:更换镜像源
linux·docker·centos
挖土机_00815 小时前
Kubernetes 1.35 原地扩容(In-Place Pod Resize)完整解析:机制、差异与实战示例
docker·kubernetes
左直拳16 小时前
将c++程序部署到docker
开发语言·c++·docker