1. 首页 > IT综合教程 > 正文

it教程FG126-Docker容器技术基础

内容大纲

1. Docker简介

Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后在任何环境中运行。Docker的主要特点包括:

  • 轻量级:容器共享宿主机内核,比虚拟机更轻量
  • 可移植性:容器可以在任何支持Docker的环境中运行
  • 隔离性:容器之间相互隔离,提供安全的运行环境
  • 一致性:确保开发、测试和生产环境的一致性
  • 快速部署:容器启动时间短,便于快速扩展

Docker已经成为现代应用开发和部署的标准工具,广泛应用于DevOps、微服务架构和持续集成/持续部署(CI/CD)流程中。更多学习教程www.fgedu.net.cn

2. Docker安装

2.1 Linux系统安装Docker

#

# 更新包管理器

#

apt update

#

# 安装依赖包

#

apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

#

# 添加Docker GPG密钥

#

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

#

# 添加Docker仓库

#

echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | tee /etc/apt/sources.list.d/docker.list > /dev/null

#

# 安装Docker

#

apt update && apt install -y docker-ce docker-ce-cli containerd.io

#

# 启动Docker服务

#

systemctl start docker

#

# 启用Docker服务自启动

#

systemctl enable docker

#

# 检查Docker版本

#

docker –version

$

Docker version 20.10.17, build 100c701

2.2 Windows系统安装Docker

1. 访问Docker官方网站:https://www.docker.com/products/docker-desktop

2. 下载Docker Desktop for Windows安装包

3. 运行安装程序,按照向导完成安装

4. 安装完成后,启动Docker Desktop

5. 验证Docker安装

C:\>

docker –version

C:\>

Docker version 20.10.17, build 100c701

2.3 macOS系统安装Docker

1. 访问Docker官方网站:https://www.docker.com/products/docker-desktop

2. 下载Docker Desktop for Mac安装包

3. 运行安装程序,按照向导完成安装

4. 安装完成后,启动Docker Desktop

5. 验证Docker安装

$

docker –version

$

Docker version 20.10.17, build 100c701

3. Docker基本概念

3.1 镜像(Image)

镜像是Docker容器的基础,它是一个只读的模板,包含了运行应用程序所需的所有文件和依赖。镜像可以从Docker Hub或其他镜像仓库获取,也可以通过Dockerfile构建。

3.2 容器(Container)

容器是镜像的运行实例,它是一个隔离的运行环境。容器可以被创建、启动、停止、删除等操作。每个容器都是相互隔离的,拥有自己的文件系统、网络和进程空间。

3.3 仓库(Repository)

仓库是存储镜像的地方,分为公开仓库和私有仓库。Docker Hub是最常用的公开仓库,包含了大量的官方和社区镜像。

3.4 Dockerfile

Dockerfile是一个文本文件,包含了构建Docker镜像的指令。通过执行Dockerfile中的指令,可以自动构建出所需的镜像。

4. Docker镜像管理

4.1 拉取镜像

$

# 拉取官方镜像

$

docker pull ubuntu:latest

$

# 拉取指定版本的镜像

$

docker pull ubuntu:20.04

4.2 查看镜像

$

# 查看本地镜像

$

docker images

$

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu latest 27941809078c 2 weeks ago 72.8MB

ubuntu 20.04 f63181f19b2f 2 weeks ago 72.8MB

4.3 删除镜像

$

# 通过镜像ID删除镜像

$

docker rmi 27941809078c

$

# 通过镜像名删除镜像

$

docker rmi ubuntu:20.04

$

# 强制删除镜像

$

docker rmi -f ubuntu:latest

4.4 构建镜像

# 创建Dockerfile
FROM ubuntu:20.04

# 安装依赖
RUN apt update && apt install -y nginx

# 复制配置文件
COPY nginx.conf /etc/nginx/nginx.conf

# 暴露端口
EXPOSE 80

# 启动服务
CMD ["nginx", "-g", "daemon off;"]
$

# 构建镜像

$

docker build -t my-nginx .

$

# 查看构建的镜像

$

docker images

$

REPOSITORY TAG IMAGE ID CREATED SIZE

my-nginx latest 1a2b3c4d5e6f 1 minute ago 180MB

5. Docker容器管理

5.1 创建容器

$

# 创建并运行容器

$

docker run -d –name my-container -p 8080:80 my-nginx

$

# 查看运行中的容器

$

docker ps

$

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

1234567890ab my-nginx “nginx -g ‘daemon of…” 1 minute ago Up 1 minute 0.0.0.0:8080->80/tcp my-container

5.2 管理容器

$

# 停止容器

$

docker stop my-container

$

# 启动容器

$

docker start my-container

$

# 重启容器

$

docker restart my-container

$

# 查看容器日志

$

docker logs my-container

$

# 进入容器

$

docker exec -it my-container /bin/bash

$

# 删除容器

$

docker rm my-container

$

# 强制删除运行中的容器

$

docker rm -f my-container

6. Docker网络

6.1 网络类型

  • bridge:默认网络类型,容器之间通过桥接网络通信
  • host:容器直接使用宿主机网络
  • none:容器没有网络连接
  • overlay:用于多节点Docker集群的网络

6.2 网络管理

$

# 查看网络

$

docker network ls

$

# 创建网络

$

docker network create my-network

$

# 运行容器时指定网络

$

docker run -d –name my-container –network my-network my-nginx

$

# 删除网络

$

docker network rm my-network

7. Docker数据卷

7.1 数据卷管理

$

# 创建数据卷

$

docker volume create my-volume

$

# 查看数据卷

$

docker volume ls

$

# 运行容器时挂载数据卷

$

docker run -d –name my-container -v my-volume:/app/data my-nginx

# 挂载主机目录

$

docker run -d –name my-container -v /host/path:/container/path my-nginx

$

# 删除数据卷

$

docker volume rm my-volume

7.2 数据卷备份

$

# 备份数据卷

$

docker run –rm -v my-volume:/source -v $(pwd):/backup alpine tar cvf /backup/volume-backup.tar /source

$

# 恢复数据卷

$

docker run –rm -v my-volume:/target -v $(pwd):/backup alpine tar xvf /backup/volume-backup.tar -C /target –strip 1

8. Docker最佳实践

生产环境建议

  • 使用官方镜像作为基础镜像
  • 最小化镜像大小,只安装必要的依赖
  • 使用多阶段构建减少镜像大小
  • 使用标签管理镜像版本
  • 定期清理无用的容器和镜像
  • 使用数据卷持久化数据
  • 使用网络隔离容器
  • 设置资源限制(CPU、内存)
  • 使用Docker Compose管理多容器应用
  • 使用Docker Swarm或Kubernetes进行容器编排
  • 定期更新Docker版本和镜像
  • 实施安全措施,如扫描镜像漏洞

风哥风哥提示:Docker是一种强大的容器化技术,建议深入学习Docker Compose和Kubernetes等相关工具,以构建更复杂的容器化应用。

学习交流加群风哥微信: itpux-com

学习交流加群风哥QQ113257174

更多学习教程公众号风哥教程itpux_com

author:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息