Docker 入门指南:基础概念、安装步骤及常用命令

一、Docker 简介

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。容器是完全隔离的环境,它们可以在任何支持Docker的机器上运行,确保了应用的一致性和安全性。

二、Docker 核心概念

镜像(Image): 包含应用程序及其依赖的静态文件。
容器(Container): 镜像的运行实例。
仓库(Repository): 存放镜像的地方,可以是公共的或私有的。
Dockerfile: 一个文本文件,包含了创建Docker镜像的指令。

三、Docker 安装

以在CentOS上安装Docker为例

安装必要的软件包:

yum install -y yum-utils device-mapper-persistent-data lvm2
设置Docker仓库:


yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker CE:

yum install docker-ce
启动Docker守护进程:

systemctl start docker
验证Docker是否安装成功并正在运行:

systemctl status docker
返回
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-02-01 16:47:55 CST; 1 months 3 days ago

四、常用命令

1、docker pull: 下载一个镜像或仓库到本地

#docker login 登入镜像库
docker pull ubuntu

这条命令会从Docker Hub下载最新的Ubuntu镜像。

2、docker build: 使用Dockerfile构建镜像

docker build -t my-image:latest .

-t, --tag: 给镜像命名,可以使用多个 -t 来给一个镜像设置多个标签。
--build-arg: 设置构建时的变量。
--no-cache: 构建镜像时不使用缓存。
-f, --file: 指定要使用的Dockerfile路径。

这条命令会根据当前目录下的Dockerfile创建一个新的镜像,并标记为my-image:latest。

3、docker images: 列出本地的镜像

docker images

-a, --all: 显示所有镜像(默认隐藏中间镜像层)。
--format: 使用Go模板格式化输出。
-q, --quiet: 只显示镜像ID。

这条命令会列出所有本地存储的镜像。

4、docker run: 运行一个容器

docker run -it --name my-container ubuntu /bin/bash

-d, --detach: 后台运行容器,并返回容器ID。
-p, --publish: 发布容器的端口到宿主机。
-v, --volume: 绑定挂载卷。
--name: 为容器指定一个名称。
--rm: 容器退出时自动清理容器文件系统。
--env, -e: 设置环境变量。


这条命令会基于ubuntu镜像创建一个新的容器,并命名为my-container,同时开启交互式终端。

5、docker ps: 列出运行中的容器

docker ps

-a, --all: 显示所有容器(默认只显示运行中的)。
-q, --quiet: 只显示容器ID。

这条命令会显示所有正在运行的容器。

6、docker stop: 停止一个运行中的容器

docker stop my-container

-t, --time: 设置发送SIGTERM信号和SIGKILL信号之间的等待时间,默认为10秒。


这条命令会停止名为my-container的容器。

7、docker start: 启动一个已停止的容器

docker start my-container

这条命令会启动名为my-container的容器。

8、docker rm: 删除一个容器

docker rm my-container

-f, --force: 强制删除运行中的容器。
-v, --volumes: 删除与容器关联的卷

这条命令会删除名为my-container的容器。

9、docker rmi: 删除一个镜像

docker rmi my-image:latest

-f, --force: 强制删除,即使有容器正在使用。

这条命令会删除标记为my-image:latest的镜像。

10、docker exec: 在运行的容器中执行命令

docker exec -it my-container /bin/bash

-d, --detach: 分离模式: 在后台运行。
--env: 设置环境变量。
-w, --workdir: 设置工作目录。

这条命令会在名为my-container的容器中开启一个bash会话。

五、查看运行日志及状态

1、查看Docker容器的运行日志

可以使用docker logs命令。基本用法如下:

docker logs [OPTIONS] CONTAINER

其中,CONTAINER是查看日志的容器的ID或名称。一些常用的选项包括:

-f 或 --follow:跟踪日志输出
--since:显示自某个时间以来的日志
--tail:显示最后N条日志
例如,要跟踪容器的实时日志输出,可以使用:

docker logs [OPTIONS] CONTAINER

2、查看Docker的运行CPU和内存

要查看Docker容器的资源使用情况,包括CPU和内存,可以使用docker stats命令。这个命令会提供实时的资源使用情况:

docker stats [OPTIONS] [CONTAINER...]

如果不指定容器ID或名称,docker stats会显示所有运行容器的资源使用情况。如果只想查看特定容器的资源使用情况,可以在命令后面加上容器ID或名称。

六、构建Dockerfile

构建Dockerfile时,应遵循一些最佳实践和规范,以确保镜像的效率、安全性和可维护性

1、基本的规范

基础镜像选择:尽量选择官方、轻量级、安全的基础镜像。

最小化层数:每个RUN指令都会创建一个新的镜像层,尽量合并RUN指令,减少层数。

清理缓存:在安装软件后清理不必要的缓存和文件,以减小镜像大小。

设置工作目录:使用WORKDIR指令设置工作目录,避免使用cd命令。

暴露端口:使用EXPOSE指令声明容器监听的端口。

配置环境变量:使用ENV指令设置环境变量,以便配置容器运行时的行为。

2、一个基本的Dockerfile示例:

# 使用官方Python运行时作为父镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 将当前目录内容复制到位于/app中的容器中
COPY . /app

# 安装requirements.txt中指定的任何所需包
RUN pip install --no-cache-dir -r requirements.txt

# 使端口80可供此容器外的环境使用
EXPOSE 80

# 定义环境变量
ENV NAME World

# 在容器启动时运行app.py
CMD ["python", "app.py"]

docker build -t my-image:latest .

Docker是一个非常强大的工具,它简化了应用的部署和管理。以上只是一个简单的入门介绍,Docker的功能远不止这些。为了全面掌握Docker

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值