Docker入门指南:从安装到基本命令
发布时间: 2024-01-10 00:32:22 阅读量: 44 订阅数: 21
# 1. 介绍
## 1.1 什么是Docker
Docker是一个开源的应用容器引擎,可以轻松地为任何应用创建一个轻量级、可移植的、自包含的容器。每个Docker容器都包含了应用程序运行所需的所有文件和环境,确保了应用在任何环境中都能够以相同的方式运行。
## 1.2 Docker的优势
- 轻量级:Docker容器利用宿主机的内核,不需要额外的虚拟机启动,因此资源消耗更低。
- 可移植性:容器可以在开发、测试、生产环境之间轻松迁移。
- 环境一致性:确保开发、测试和生产环境中应用程序的一致性。
## 1.3 Docker的应用场景
- 微服务架构
- 应用程序的打包和发布
- 快速搭建开发和测试环境
- 提供一次性环境
以上是Docker的介绍部分,下面开始安装Docker。
# 2. 安装Docker
### 2.1 操作系统要求
在安装Docker之前,您需要确保您的操作系统满足以下要求:
- Ubuntu 64位操作系统,版本为16.04或更高版本。
- CentOS 7或更高版本。
- Debian 9或更高版本。
### 2.2 安装Docker Engine
以下是在不同操作系统上安装Docker Engine的步骤:
#### Ubuntu
1. 更新软件包索引:
```shell
$ sudo apt-get update
```
2. 安装必要的软件包以允许apt通过HTTPS使用存储库:
```shell
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
```
3. 添加Docker的官方GPG密钥:
```shell
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```
4. 添加Docker存储库:
```shell
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```
5. 更新软件包索引:
```shell
$ sudo apt-get update
```
6. 安装Docker Engine:
```shell
$ sudo apt-get install docker-ce
```
#### CentOS
1. 移除旧的版本:
```shell
$ sudo yum remove docker docker-common docker-selinux docker-engine
```
2. 设置存储库:
```shell
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
```
3. 安装Docker Engine:
```shell
$ sudo yum install docker-ce
```
#### Debian
1. 更新软件包索引:
```shell
$ sudo apt-get update
```
2. 安装必要的软件包以允许apt通过HTTPS使用存储库:
```shell
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
```
3. 添加Docker的官方 GPG 密钥:
```shell
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
```
4. 添加Docker存储库:
```shell
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
```
5. 更新软件包索引:
```shell
$ sudo apt-get update
```
6. 安装Docker Engine:
```shell
$ sudo apt-get install docker-ce
```
### 2.3 验证Docker安装成功
安装完成后,您可以通过运行以下命令来验证Docker是否正确安装:
```shell
$ sudo docker run hello-world
```
如果一切顺利,您将看到一条欢迎信息,表明Docker安装成功。
# 3. Docker镜像
Docker镜像是用于创建Docker容器的模板。它包含了运行容器所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
#### 3.1 什么是Docker镜像
Docker镜像是一个只读模板,它包含了用于创建容器的文件系统内容,以及一些额外的配置参数。镜像可以作为容器的基础,多个容器可以共用一个镜像。
#### 3.2 获取镜像
你可以从Docker Hub(一个镜像仓库)获取公开的镜像,也可以在本地构建自己的镜像。使用`docker pull`命令可以从仓库中获取一个镜像到本地:
```bash
docker pull ubuntu:latest
```
#### 3.3 创建自定义镜像
你可以通过编写Dockerfile来定义自己的镜像。Dockerfile是一个文本文件,包含了一系列的命令和参数,这些命令指定了镜像的基础镜像、运行的命令、暴露的端口以及容器启动时执行的命令等信息。通过运行`docker build`命令,你可以使用Dockerfile构建一个自定义的镜像:
```Dockerfile
# Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y python3
```
使用以下命令构建镜像:
```bash
docker build -t custom_ubuntu .
```
#### 3.4 上传和分享镜像
你可以通过`docker push`命令将自定义的镜像上传到Docker Hub或者其他的镜像仓库,这样其他人就可以获取并使用你的镜像。
```bash
docker login
docker tag custom_ubuntu username/custom_ubuntu
docker push username/custom_ubuntu
```
通过上述步骤,你可以创建、获取、定制和分享Docker镜像。
# 4. Docker容器
Docker容器是Docker中的一个核心概念,它类似于一个轻量级的虚拟机,可以承载应用程序及其依赖项,并以可移植的方式打包、交付和运行。在本章节中,我们将深入探讨Docker容器的相关主题。
#### 4.1 什么是Docker容器
Docker容器是一个可运行的实例,它包含了应用程序及其依赖项,以及文件系统、系统工具、库和设置。与传统虚拟机不同的是,Docker容器不需要完整的操作系统,它们与宿主机共享内核,因此更加轻量级和高效。
#### 4.2 启动和停止容器
在Docker中,启动和停止容器是一个常见的操作。通过Docker命令或者Docker API,可以方便地启动、停止、重启容器。
```bash
# 通过镜像启动一个容器
docker run -d --name my_container my_image
# 停止一个正在运行的容器
docker stop my_container
# 重新启动一个已经停止的容器
docker start my_container
```
#### 4.3 进入容器
有时候我们需要进入正在运行的容器内部进行调试或者查看文件,可以通过`docker exec`命令进入容器。
```bash
# 进入正在运行的容器
docker exec -it my_container /bin/bash
```
#### 4.4 复制文件和文件夹
在Docker容器与宿主机之间复制文件和文件夹也是常见的操作。可以使用`docker cp`命令在容器和宿主机之间进行文件复制。
```bash
# 从容器复制文件到宿主机
docker cp my_container:/app/config.txt /host/path/config.txt
# 从宿主机复制文件到容器
docker cp /host/path/config.txt my_container:/app/config.txt
```
#### 4.5 提交容器更改为新镜像
当我们对容器做出了修改,可以通过提交来保存这些修改,并创建成一个新的镜像。
```bash
# 提交容器更改为新镜像
docker commit my_container my_image:new
```
在这一章节中,我们学习了Docker容器的启动和停止、进入容器、复制文件以及提交容器更改为新镜像的操作。这些都是Docker容器日常使用中比较常见的操作,对于掌握Docker技术非常重要。
# 5. Docker网络
Docker网络允许容器在彼此之间进行通信,以及与外部世界进行通信。Docker提供了多种网络模式,包括桥接网络、主机模式、覆盖网络等,以满足不同的使用需求。
#### 5.1 Docker网络基础
在Docker中,每个容器都有自己的IP地址,并且可以通过容器名称或ID进行通信。此外,Docker还允许创建自定义网络,用于将多个容器连接在一起,实现更复杂的应用程序架构。
#### 5.2 创建自定义网络
创建自定义网络可以使用以下命令:
```bash
docker network create mynetwork
```
上述命令将创建一个名为`mynetwork`的自定义网络。
#### 5.3 连接容器到网络
要将容器连接到自定义网络,可以在运行容器时使用`--network`参数指定要连接的网络,例如:
```bash
docker run -d --name=container1 --network=mynetwork image1
```
上述命令将容器`container1`连接到自定义网络`mynetwork`中。
#### 5.4 使用网络别名
在同一个自定义网络中的容器可以使用容器名称作为网络别名来相互访问,这样可以简化应用程序配置,例如:
```bash
docker run -d --name=container2 --network=mynetwork --network-alias=alias1 image2
```
上述命令将容器`container2`连接到自定义网络`mynetwork`中,并设置了网络别名为`alias1`。
Docker网络功能的灵活性和便利性使得容器间的通信和与外部网络的连接变得非常简单和高效。
# 6. 基本命令
Docker提供了丰富的命令行工具,用于管理Docker的镜像、容器、网络等资源。本章将介绍一些常用的Docker命令,以便于快速上手使用Docker。
#### 6.1 查看镜像和容器列表
要查看本地主机上已有的Docker镜像,可以使用`docker images`命令:
```bash
docker images
```
若要列出正在运行的容器,可以使用`docker ps`命令:
```bash
docker ps
```
#### 6.2 运行容器
要在Docker中运行一个容器,可以使用`docker run`命令。以下是一个示例:
```bash
docker run -it ubuntu:latest /bin/bash
```
这条命令会启动一个新的Ubuntu容器,并且在启动后会进入其命令行界面。
#### 6.3 删除镜像和容器
要删除本地主机上的Docker镜像,可以使用`docker rmi`命令:
```bash
docker rmi image_id
```
要删除已停止的容器,可以使用`docker rm`命令:
```bash
docker rm container_id
```
#### 6.4 查看容器日志
要查看容器的日志信息,可以使用`docker logs`命令,例如:
```bash
docker logs container_id
```
#### 6.5 导出和导入容器
要导出容器的文件系统作为一个tar归档文件,可以使用`docker export`命令:
```bash
docker export container_id > container.tar
```
要导入一个容器文件系统作为一个新的镜像,可以使用`docker import`命令:
```bash
docker import container.tar
```
以上是一些常用的Docker命令介绍,希望能够帮助你更好地使用Docker进行开发和部署。
0
0