Docker入门

Docker入门到精通

什么是Docker?

Docker是一种开源的软件平台,它可以让你在容器中运行和管理应用程序。容器是一种轻量级的虚拟化技术,它可以让你把应用程序和它所需要的所有依赖(如库、配置文件、环境变量等)打包成一个可移植的单元,然后在任何支持Docker的机器上运行,比如:

  1. 本地的电脑
  2. 云端的服务器
  3. 代码托管平台
  4. 树莓派等嵌入式设备

使用Docker的好处有很多,比如:

  • 提高开发和部署的效率和一致性,因为你可以在不同的环境中使用相同的容器,而不用担心兼容性和配置问题。
  • 节省资源和成本,因为你可以在一台机器上运行多个容器,而不用为每个应用程序分配一个完整的操作系统和硬件资源。
  • 增强安全性和隔离性,因为每个容器都是相互独立的,不会相互影响,也不会影响宿主机的系统和文件。
  • 促进协作和共享,因为你可以使用Docker Hub等公共或私有的仓库,来存储和分发你的容器镜像,让其他人可以轻松地获取和使用你的应用程序。

安装和使用Docker

要使用Docker,你首先需要在你的机器上安装Docker Engine,这是一个负责创建和运行容器的核心组件。你可以根据你的操作系统和硬件架构,从Docker官网下载合适的安装包,或者使用命令行工具来安装。如果你只在代码托管平台上运行,可以看我的下一篇的教程Dockerfile

安装完成后,你可以使用docker命令来操作Docker Engine,比如:

  • docker run:运行一个容器
  • docker ps:查看正在运行的容器
  • docker stop:停止一个容器
  • docker rm:删除一个容器
  • docker images:查看本地的容器镜像
  • docker pull:从远程仓库拉取一个容器镜像
  • docker push:向远程仓库推送一个容器镜像
  • docker build:根据Dockerfile构建一个容器镜像
  • docker tag:给一个容器镜像打上标签
  • docker login:登录到一个远程仓库
  • docker logout:登出一个远程仓库

如果记不住,可以输入docker --helpdocker <command> --help来查看更多的命令和选项。

创建和运行容器

首先,我们来创建和运行一个简单的容器,让它打印出"Hello, Docker!"的信息。

首先,我们需要一个Dockerfile,这是一个文件,它记录了如何构建一个容器镜像。我们可以使用任何文本编辑器来创建一个名为Dockerfile的文件,然后在里面写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
# 使用官方的Python 3.9镜像作为基础镜像
FROM python:3.9

# 设置工作目录为/app
WORKDIR /app

# 将当前目录下的hello.py文件复制到/app目录下
COPY hello.py .

# 运行hello.py文件
CMD ["python", "hello.py"]

然后,我们需要一个hello.py文件,这是一个Python脚本,它打印出"Hello, Docker!"的信息。我们可以在Dockerfile文件的同一个目录下创建一个名为hello.py的文件,然后在里面编写以下内容:

1
2
# 打印出"Hello, Docker!"的信息
print("Hello, Docker!")

接下来,我们可以使用docker build命令来根据Dockerfile构建一个容器镜像,比如:

1
2
3
4
# 在当前目录下执行
# -t选项用来给镜像打上一个标签,格式为<仓库名>/<镜像名>:<标签名>
# .表示使用当前目录下的Dockerfile
docker build -t myrepo/hello:latest .

如果一切顺利,我们就可以在本地的容器镜像列表中看到我们刚刚构建的镜像,比如:

查看本地的容器镜像列表:docker images

1
2
3
4
# 输出结果类似于
REPOSITORY TAG IMAGE ID CREATED SIZE
myrepo/hello latest 7a0a8c6f0a0f 10 seconds ago 885MB
python 3.9 1e9f5a8f7b4a 2 weeks ago 885MB

最后,我们可以使用docker run命令来运行一个基于我们的镜像的容器,比如:

1
2
3
4
5
6
# 运行一个容器
# --rm选项表示容器退出后自动删除
docker run --rm myrepo/hello:latest

# 输出结果类似于
Hello, Docker!

恭喜你,你已经成功地创建和运行了一个简单的容器!

如何进一步学习和使用Docker?

这篇文章只是对Docker的一个简单的介绍,Docker还有很多更高级和更强大的功能和特性,比如:

  • Docker Compose:用来定义和运行多个容器的应用程序
  • Docker Swarm:用来在多个机器上部署和管理容器的集群
  • Docker Machine:用来在远程的虚拟机或云端的服务器上安装和管理Docker Engine
  • Docker Network:用来创建和管理容器之间的网络连接
  • Docker Volume:用来创建和管理容器之间的数据卷
  • Docker Registry:用来存储和分发容器镜像的服务
  • Docker Desktop:用来在Windows和Mac上提供一个图形化的界面和工具来操作Docker
  • Docker CLI:用来在命令行中操作Docker的工具
  • Docker SDK:用来在Python、Go等语言中编程操作Docker的库
  • Docker API:用来提供RESTful的接口来操作Docker的服务

如果你想要进一步学习和使用Docker,你可以参考以下的资源:

  • [Docker官网](https://www.docker.com:提供了Docker的下载、安装、文档、教程、博客、社区等信息
  • [Docker Hub](https://hub.docker.com:提供了数以百万计的公开的容器镜像,以及私有的仓库服务
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023 xiaoguigui
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信