自建服务器网站备案,网页制作常用软件有哪些,教务系统网站建设模板下载,竹子建站是什么第45天#xff1a;使用Docker容器
目标
在本节中#xff0c;我们将深入了解Docker及其基本用法#xff0c;掌握如何使用Docker容器来简化开发和部署流程。
背景知识
Docker是一个开源平台#xff0c;用于开发、运输和运行应用程序。它使我们能够使用容器技术将应用程序…第45天使用Docker容器
目标
在本节中我们将深入了解Docker及其基本用法掌握如何使用Docker容器来简化开发和部署流程。
背景知识
Docker是一个开源平台用于开发、运输和运行应用程序。它使我们能够使用容器技术将应用程序及其依赖项打包在一起确保无论在何处运行都能保持一致性。
1. Docker的基本概念
概念说明容器一种轻量级、可移植的虚拟化环境允许应用程序运行。镜像容器的蓝图包含应用程序及其所有依赖项和运行环境。Dockerfile一个文本文件描述如何构建Docker镜像的步骤。Docker HubDocker的公共镜像仓库可以存储和分享镜像。守护进程Docker的核心组件负责创建、运行和管理容器。
2. 安装Docker
在开始之前请确保你的开发环境中已安装Docker。可以通过以下命令检查是否成功安装Docker
docker --version如果未安装请访问 Docker官网 按照指导进行安装。
3. Docker基础命令
命令说明docker pull image从Docker Hub拉取镜像docker images列出本地镜像docker run image创建并运行一个容器docker ps列出正在运行的容器docker stop container停止指定的容器docker rm container删除指定的容器docker rmi image删除指定的镜像docker exec -it container /bin/bash通过交互式终端进入容器指令接口
3.1 运行第一个Docker容器
我们来运行一个简单的Docker容器以测试Docker是否正常工作。我们将使用Official的hello-world镜像。
docker run hello-world运行该命令后Docker将从Docker Hub拉取该镜像并运行容器。如果成功你将看到一条欢迎消息表明Docker已成功安装并配置。
4. 使用Dockerfile构建镜像
Dockerfile是构建自定义镜像的基础。下面是一个简单的示例创建一个运行Go应用程序的Docker镜像。
4.1 创建项目结构
在你的工作目录下创建如下目录结构
my-go-app/
├── Dockerfile
└── main.go4.2 编写Go应用程序
在main.go中添加以下简单的HTTP服务器代码
package mainimport (fmtnet/http
)func handler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, Hello, Docker!)
}func main() {http.HandleFunc(/, handler)http.ListenAndServe(:8080, nil)
}4.3 编辑Dockerfile
在Dockerfile中添加以下内容
# 使用官方Go语言镜像作为基础镜像
FROM golang:1.20# 设置工作目录
WORKDIR /app# 复制Go模块文件和代码到容器
COPY go.mod go.sum ./
RUN go mod download
COPY . .# 编译Go应用程序
RUN go build -o main .# 运行应用程序
CMD [./main]# 开放服务的端口
EXPOSE 80804.4 构建镜像
在终端中切换到my-go-app目录执行以下命令
docker build -t my-go-app .这将根据Dockerfile构建一个名为my-go-app的镜像。
4.5 运行容器
本地运行构建的镜像
docker run -p 8080:8080 my-go-app4.6 访问应用程序
在浏览器中输入 http://localhost:8080你应该可以看到“Hello, Docker”的消息。
5. Docker容器与镜像的管理
5.1 列出镜像和容器
要查看本地的Docker镜像
docker images要查看运行中的容器
docker ps5.2 停止和删除容器
如果需要停止运行的容器可以通过以下命令停止它
docker stop container_id若想删除容器
docker rm container_id5.3 删除镜像
若要删除不再需要的镜像可以使用
docker rmi my-go-app6. Docker Compose
对于更复杂的应用程序Docker Compose是一种便利的工具允许你使用一个YAML文件同时定义和管理多个容器。
6.1 安装Docker Compose
确保你的Docker已经安装了Compose。可以通过以下命令检查
docker-compose --version6.2 创建docker-compose.yml
在项目目录中创建一个名为 docker-compose.yml 的文件并加入以下内容
version: 3services:web:build: .ports:- 8080:80806.3 启动服务
在项目目录中运行以下命令启动服务
docker-compose up访问 http://localhost:8080确保应用程序正常工作。
7. Docker网络和数据管理
7.1 Docker网络
Docker提供不同的网络驱动程序支持容器间的通信。可以通过以下命令查看当前的网络
docker network ls7.2 Docker数据管理
若要在容器间共享数据可以使用卷Volume来管理数据。卷是存储在主机文件系统上的一个特定路径能够在不同的容器之间共享数据。
7.3 创建和使用卷
创建一个卷
docker volume create my_data在运行容器时使用该卷
docker run -v my_data:/data my-go-app8. 运行流程图
以下是运行Docker容器的流程图 #mermaid-svg-OB08pujl8sUG7l6g {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OB08pujl8sUG7l6g .error-icon{fill:#552222;}#mermaid-svg-OB08pujl8sUG7l6g .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OB08pujl8sUG7l6g .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OB08pujl8sUG7l6g .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OB08pujl8sUG7l6g .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OB08pujl8sUG7l6g .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OB08pujl8sUG7l6g .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OB08pujl8sUG7l6g .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OB08pujl8sUG7l6g .marker.cross{stroke:#333333;}#mermaid-svg-OB08pujl8sUG7l6g svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OB08pujl8sUG7l6g .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OB08pujl8sUG7l6g .cluster-label text{fill:#333;}#mermaid-svg-OB08pujl8sUG7l6g .cluster-label span{color:#333;}#mermaid-svg-OB08pujl8sUG7l6g .label text,#mermaid-svg-OB08pujl8sUG7l6g span{fill:#333;color:#333;}#mermaid-svg-OB08pujl8sUG7l6g .node rect,#mermaid-svg-OB08pujl8sUG7l6g .node circle,#mermaid-svg-OB08pujl8sUG7l6g .node ellipse,#mermaid-svg-OB08pujl8sUG7l6g .node polygon,#mermaid-svg-OB08pujl8sUG7l6g .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OB08pujl8sUG7l6g .node .label{text-align:center;}#mermaid-svg-OB08pujl8sUG7l6g .node.clickable{cursor:pointer;}#mermaid-svg-OB08pujl8sUG7l6g .arrowheadPath{fill:#333333;}#mermaid-svg-OB08pujl8sUG7l6g .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OB08pujl8sUG7l6g .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OB08pujl8sUG7l6g .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OB08pujl8sUG7l6g .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OB08pujl8sUG7l6g .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OB08pujl8sUG7l6g .cluster text{fill:#333;}#mermaid-svg-OB08pujl8sUG7l6g .cluster span{color:#333;}#mermaid-svg-OB08pujl8sUG7l6g div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OB08pujl8sUG7l6g :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 创建Dockerfile 构建镜像 运行容器 访问应用 使用Docker命令管理 9. 总结
通过本节学习我们了解了Docker的基础知识掌握了如何使用Dockerfile构建镜像运行和管理容器以及使用Docker Compose管理多容器应用。此外也学习了如何使用Docker网络和数据卷来支持更复杂的应用架构。
相关工具
Docker DocumentationDocker Hub 怎么样今天的内容还满意吗再次感谢观众老爷的观看关注GZH凡人的AI工具箱回复666送您价值199的AI大礼包。最后祝您早日实现财务自由还请给个赞谢谢