Docker与Docker Compose入门:释放你应用部署的威力

今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨大的好处 。
1. Docker 一键安装这里给大家分享我的 Docker 一键安装脚本,在大部分基于 linux 内核的系统中可以直接使用 。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsudo systemctl enable dockersudo systemctl start dockerdocker versionif [ $? -eq 0  ];thenecho "docker successful  installation!"fi# 添加国内镜像touch /etc/docker/daemon.jsonecho "{  "registry-mirrors": [    "http://hub-mirror.c.163.com"  ]}" > /etc/docker/daemon.jsonsudo systemctl daemon-reloadsudo systemctl restart docker2. Docker 语法Docker 的语法非常易懂,它使用简洁的命令和关键字来定义和管理容器 。下面是一些常用的 Docker 语法元素:

  • 镜像(image) :镜像是 Docker 的基本概念,它是一个轻量且独立的可执行软件包 。你可以将镜像看作是一个包含了完整运行环境的模板,其中包括应用程序、库和依赖 。你可以使用 docker pull 命令从 Docker Hub 或其他镜像仓库中获取镜像 , 也可以使用 docker build 命令通过 Dockerfile 构建自定义镜像 。
  • 容器(contAIner) :容器是基于镜像创建的运行实例 。你可以使用 docker run 命令来创建并启动一个容器,也可以使用 docker startdocker stopdocker restart 命令来分别启动、停止和重启容器 。容器是轻量级的,它们共享主机操作系统的内核,因此可以更高效地运行多个容器 。
  • Dockerfile :Dockerfile 是一个文本文件 , 用于定义如何构建 Docker 镜像 。它包含一系列的指令和配置项 , 例如基础镜像、运行命令、复制文件、设置环境变量等 。通过编写 Dockerfile , 你可以创建包含自定义配置和应用程序的镜像 。
  • 映射端口(port mApping) :使用 -p 参数可以将容器内部的端口映射到主机上的端口 。例如 , -p 8080:80 将容器内的 80 端口映射到主机的 8080 端口,这样你就可以通过访问主机的 8080 端口来访问容器的服务 。
  • 数据卷(volume) :数据卷是用于持久存储数据的特殊目录或文件 。数据卷可以在容器之间共享和重用,使得数据持久化且不受容器状态的影响 。你可以使用 -v 参数来创建和管理数据卷 。
3. 常用 Docker 命令下面是一些常用的 Docker 命令,让我们一起来了解一下:
  • docker pull IMAGE_NAME:从 Docker Hub 中下载指定名称的镜像 。例如:docker pull Nginx
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]:根据指定的镜像创建并运行一个容器 。OPTIONS 可以包括端口映射、数据卷挂载、环境变量设置等 。例如:docker run -d -p 8080:80 nginx,这将在后台运行一个 NGINX 容器并将主机的 8080 端口映射到容器的 80 端口 。
  • docker ps [OPTIONS]:列出当前正在运行的容器 。OPTIONS 可以包括过滤条件、显示格式等 。例如:docker ps -a,这将显示所有容器(包括停止的) 。
  • docker stop CONTAINER [CONTAINER...]:停止一个或多个容器的运行 。例如:docker stop my_container
  • docker build [OPTIONS] PATH:根据指定的 Dockerfile 构建一个镜像 。OPTIONS 可以包括镜像名称、标签、构建上下文等 。例如:docker build -t my_image:latest .,这将使用当前目录中的 Dockerfile 构建一个名为 my_image 的镜像 。
  • docker rm CONTAINER [CONTAINER...]:删除一个或多个容器 。例如:docker rm my_container
  • docker exec <container> <command>:在容器中执行指定的命令 。例如:docker exec -it my_container bash
以上只是一小部分常用的命令 , Docker 提供了很多其他有用的命令和选项,让你可以更灵活地管理容器和镜像 。
4. 使用 Dockerfile 自定义镜像Dockerfile 是一个文本文件,用来描述如何从一个基础镜像(例如 ubuntu 或 alpine)构建出一个新的镜像,包括安装依赖、复制文件、设置环境变量、暴露端口等操作 。使用 Dockerfile 可以让开发者清晰地记录应用程序的配置和依赖,以及保证应用程序在不同的环境中运行的一致性 。


推荐阅读