Docker基础与进阶:从HelloWorld到Dockerfile

版权申诉
0 下载量 162 浏览量 更新于2024-08-10 收藏 1.44MB PDF 举报
"Docker基础知识思维导图-002" Docker是现代软件开发和部署的重要工具,它提供了一种轻量级的虚拟化方式,使得应用可以在独立的容器中运行,从而实现快速部署和移植。Docker的核心概念包括镜像(Image)和容器(Container),镜像是创建容器的基础,而容器则是镜像的运行实例。 **Docker基本操作** 1. **运行“HelloWorld”**: Docker的初体验通常是从运行官方的"HelloWorld"镜像开始,它展示了如何简单地启动一个容器并输出欢迎信息。 ``` docker run ubuntu:15.10 /bin/echo "HelloWorld" ``` 2. **运行交互式容器**: 使用`-i`和`-t`参数,可以打开一个终端交互式会话,例如: ``` docker run -it ubuntu:15.10 /bin/bash ``` 3. **后台模式运行容器**: 添加`-d`参数可让容器在后台运行,如: ``` docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo HelloWorld; sleep 1; done" ``` 4. **查看容器的标准输出**: 使用`docker logs`命令查看容器的输出。 ``` docker logs CONTAINER_ID ``` 5. **停止容器**: 使用`docker stop`命令停止容器。 ``` docker stop CONTAINER_ID ``` 6. **其他操作**:包括查看所有容器 (`docker ps`)、进入容器 (`docker exec`)、查看本地镜像 (`docker images`)、导入容器为镜像 (`docker commit`)、删除容器 (`docker rm`)、查看容器端口映射 (`docker port`)、查看容器底层信息 (`docker inspect`)、查找镜像 (`docker search`)、删除镜像 (`docker rmi`)、启动容器 (`docker start`)、重启容器 (`docker restart`)。 **镜像管理** - **创建镜像**:有两种方式,一是基于已有的容器创建新的镜像,二是使用Dockerfile来定义和构建镜像。 - 从容器创建镜像:`docker commit` - Dockerfile创建镜像:`docker build -t IMAGE_NAME .` **Docker指令详解** - `COPY`: 将本地文件复制到镜像中 - `ADD`: 类似COPY,但支持自动解压和从URL下载文件 - `CMD`: 设置容器启动时执行的默认命令 - `ENTRYPOINT`: 设置容器作为可执行程序,接收CMD作为参数 - `ENV`: 设置环境变量 - `ARG`: 在构建过程中传递可选参数 - `VOLUME`: 创建挂载点,允许容器外部的数据持久化 - `EXPOSE`: 宣告容器监听哪些端口 - `WORKDIR`: 设置工作目录 - `USER`: 指定运行容器时的用户 - `HEALTHCHECK`: 定义检查容器健康状况的命令 - `ONBUILD`: 当构建基于该基础镜像的新镜像时,执行的指令 - `LABEL`: 添加元数据到镜像 **Docker工具** - **Docker Compose**: 单机环境下的容器编排工具,用于定义和运行多容器应用。 - **Docker Machine**: 用于管理Docker主机的工具,可以创建和配置Docker运行环境。 - **Docker Swarm**: 早期的集群管理工具,已被Docker Kubernetes (Docker EE)替代,用于跨节点的容器编排。 **Docker运行应用程序** 使用`docker run`命令,可以指定镜像、容器运行参数以及执行的命令。例如,上述的`docker run -it ubuntu:15.10 /bin/bash`命令会在新的Ubuntu容器中打开一个交互式bash shell。 总结来说,Docker提供了从创建、管理到部署的一整套解决方案,使得开发者能够更高效地打包、分发和运行应用程序,极大地简化了运维流程。通过掌握Docker的基本操作和高级特性,可以更灵活地应对各种复杂的软件部署需求。