【什么是容器】Docker基础知识、相关概念以及基本使用命令

Docker 初识

1. 什么是Docker

Docker 是一种轻量级的容器技术,可以在容器内运行应用程序和服务。它可以让开发人员和运维人员更轻松地打包、交付和运行应用程序,从而提高了应用程序的可移植性、可靠性和安全性。

2. Docker 的出现主要解决的问题

Docker 的出现主要是解决了软件开发、交付和部署的问题。在传统的软件开发流程中,开发人员通常需要在本地安装开发环境和依赖,而这些环境和依赖在不同的开发人员之间可能存在差异,导致应用程序在不同的环境中运行时出现问题。此外,可以将应用程序及其依赖打包到一个可移植的容器中,使得应用程序在不同的环境中运行时具有一致的行为, 并且可以方便地进行部署和管理。因此,Docker的出现主要解决了应用程序的可移植性和一致性、快速部署、灵活性和可重复性等问题。
在

3. Docker 的主要优点和应用场景

a. 轻量级和高效性: Docker 容器使用的资源很少,因此可以在一个物理机上运行多个容器,提高了硬件利 用率和应用程序的效率;

b. 可移植性: Docker 容器包含了所有运行应用程序所需的依赖项和配置,因此可以轻松地在不同的环境中 运行;

c. 一致性和可重复性: Docker 容器可以确保应用程序在不同的环境中以相同的方式运行,从而提高了应用 程序的一致性和可重复性;

d. 快速部署和交付: Docker 容器可以快速地部署和交付,减少了开发、测试和生产环境之间的差异,提高了 应用程序的交付速度。

4. Docker 容器与传统虚拟机的区别

a. 架构不同: 虚拟机是一种完整的虚拟化技术,需要运行一个完整的操作系统, 而Docker 容器是基于操作系统级别的虚拟化技术, 容器共享宿主机的操作系统内核;
b. 资源占用: 虚拟机启动时需要分配一定的CPU,内存和存储资源,而Docker 容器只需要分配所需的资源, 不会浪费多余的资源;
c. 启动速度: 虚拟机启动是需要加载完整的操作系统,并启动各种服务, 启动速度较慢, 而Docker 容器只需要启动应用程序和依赖项,可以快速部署和迁移;
d. 部署方式: 虚拟机镜像通常很大, 需要使用专门的工具进行部署,而Docker 容器镜像只包含应用程序及其依赖项, 可以快速的部署和迁移;
e.网络与安全: 虚拟机通常需要单独配置网络和安全策略, 而Docker 容器可以共享宿主机的网络和安全策略.

总体来看,Docker 容器想对于传统的虚拟机来说,更加的轻量级,启动速度更快,资源占用更少,更易于管理和迁移.但是,虚拟机可以提供更高的隔离性和安全性,适用于一些对安全性要求较高的场景.

Docker 相关基本概念

1. Docker 镜像

Docker 镜像是 Docker 容器运行所需的文件系统快照和配置文件的集合,可以看作是一个可执行的软件包,其中包含了运行容器所需的所有内容,包括操作系统、应用程序、库文件、依赖项等。使用 Docker 镜像可以方便地创建、部署、移植和共享容器,是 Docker 技术的核心概念之一。

## 常用命令
> docker images # 查看所有镜像  docker image ls 同理
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
hello-world           latest    9c7a54a9a43c   2 weeks ago     13.3kB
mysql                 8.0.29    33037edcac9b   10 months ago   444MB

> docker rmi [镜像ID号] # 镜像删除 注: 删除镜像时必须保证不存在基于该镜像构建的容器存在,否则无法删除
Untagged: hello-world:latest
Untagged: hello-world@sha256:fc6cf906cbfa013e80938cdf0bb199fbdbb86d6e3e013783e5a766f50f5dbce0
Deleted: sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d
Deleted: sha256:01bb4fce3eb1b56b05adf99504dafd31907a5aadac736e36b27595c8b92f07f1

> docker search hello-world # 镜像查找
NAME                                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
hello-world                                Hello World! (an example of minimal Dockeriz…   2032      [OK]       
rancher/hello-world                                                                        4                    
okteto/hello-world                                                                         0                    
golift/hello-world                         Hello World Go-App built by Go Lift Applicat…   0                    
tacc/hello-world                                                                           0                    
armswdev/c-hello-world                     Simple hello-world C program on Alpine Linux…   0                    
tutum/hello-world                          Image to test docker deployments. Has Apache…   90                   [OK]
thomaspoignant/hello-world-rest-json       This project is a REST hello-world API to bu…   2                    
kitematic/hello-world-nginx                A light-weight nginx container that demonstr…   153                  

> docker pull  hello-world # 镜像拉取 在不标注标签的情况下,默认下载latest版本
Using default tag: latest
latest: Pulling from library/hello-world
719385e32844: Pull complete 
Digest: sha256:fc6cf906cbfa013e80938cdf0bb199fbdbb86d6e3e013783e5a766f50f5dbce0
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

# 其他的一些命令说明
build    -- Build an image from a Dockerfile
history  -- Show the history of an image
import   -- Import the contents from a tarball to create a filesystem image
inspect  -- Display detailed information on one or more images
load     -- Load an image from a tar archive or STDIN
ls       -- List images
prune    -- Remove unused images
pull     -- Download an image from a registry
push     -- Upload an image to a registry
save     -- Save one or more images to a tar archive (streamed to STDOUT by default)
tag      -- Tag an image into a repository

Docker 镜像的创建和管理是通过 Dockerfile 文件来实现的,Dockerfile 是一个文本文件,包含了一系列的指令和参数,用于定义容器的构建流程和配置信息。通过 Dockerfile 文件,可以定义容器的基础镜像、安装依赖项、配置环境变量、运行命令等操作,最终生成一个可执行的 Docker 镜像。

Docker 镜像可以通过 Docker Hub 或者私有镜像仓库来共享和分发,用户可以在这些镜像仓库中搜索和下载所需的镜像,也可以将自己创建的镜像上传到仓库中,供其他用户使用。镜像仓库还提供了版本管理、安全扫描、镜像签名等功能,可以帮助用户更好地管理和维护 Docker 镜像。

Docker 官方镜像查看地址: https://hub.docker.com/

2. Docker 容器

Docker 容器是 Docker 技术中的一个核心概念,它是一个独立、轻量、可移植的运行环境,可以在其中运行应用程序和服务。Docker 容器是基于 Docker 镜像创建的,每个容器都包含了 Docker 镜像的一个运行实例。

# 容器运行 说明: --name 容器命名  -v 文件挂载  -p 端口映射 -d 容器持久化运行
> docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -p 8088:80 -d nginx

# 容器 日志查看命令
> docker logs [容器ID]

# 容器查看
> docker ps -a  # -a 显示全部容器包括暂停运行的容器

# 容器删除
> docker rm [容器ID]

# 进入容器
> docker exec -it [容器ID] /bin/bash  # 部分容器需要替换为 /bin/sh

# 其他命令
attach   -- Attach to a running container
commit   -- Create a new image from a container's changes
cp       -- Copy files/folders between a container and the local filesystem
create   -- Create a new container
diff     -- Inspect changes on a container's filesystem
exec     -- Execute a command in a running container
export   -- Export a container's filesystem as a tar archive
inspect  -- Display detailed information on one or more containers
kill     -- Kill one or more running containers
logs     -- Fetch the logs of a container
ls       -- List containers
pause    -- Pause all processes within one or more containers
port     -- List port mappings or a specific mapping for the container
prune    -- Remove all stopped containers
rename   -- Rename a container
restart  -- Restart one or more containers
rm       -- Remove one or more containers
run      -- Create and run a new container from an image
start    -- Start one or more stopped containers
stats    -- Display a live stream of container(s) resource usage statistics
stop     -- Stop one or more running containers
top      -- Display the running processes of a container
unpause  -- Unpause all processes within one or more containers
update   -- Update configuration of one or more containers
wait     -- Block until one or more containers stop, then print their exit codes

Docker 镜像与容器之间的关系

  1. 镜像是容器的基础,是一个只读的模板,包含了运行容器所需的所有文件、配置和依赖项等信息。可以通过 Dockerfile 文件或者从 Docker Hub 上下载镜像来创建自己的镜像。

  2. 容器是由镜像创建的一个可运行的实例,可以被启动、停止、删除等操作。容器可以在运行时对文件系统进行读写操作,并且可以通过端口映射等方式与外部网络进行通信。

  3. 容器与镜像之间是一对多的关系,即一个镜像可以创建多个容器实例。容器的状态和数据可以随时保存或删除,而镜像是不可修改的。

  4. 容器可以通过 Dockerfile 文件中的指令或者 Docker run 命令中的参数来进行配置和个性化定制。例如,可以通过 Dockerfile 中的 ENV 指令设置环境变量,或者通过 Docker run 命令中的 -v 选项挂载主机目录等。

总之,Docker 镜像是容器的基础,容器是镜像的可运行实例,容器可以通过镜像来创建,同时容器也可以通过修改和保存来生成新的镜像。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很高兴为您解答关于Docker基础知识的问题。 Docker是一种容器化平台,可以轻松地构建、部署和运行应用程序。下面是Docker基础知识的汇总。 1. Docker基本概念 Docker是一个开放源代码的容器化平台,可以帮助开发人员轻松地构建、部署和运行应用程序。Docker的核心概念包括镜像、容器、仓库和服务。 2. Docker的镜像 Docker镜像是一个可执行的软件包,包含了运行应用程序所需的所有组件,包括代码、运行时环境、库、环境变量和配置文件等。Docker镜像是一个只读的模板,可以用来创建Docker容器。 3. Docker容器 Docker容器是一个独立的运行环境,包含了Docker镜像中的应用程序和其依赖项,以及必要的运行时环境。Docker容器是一个可移植的、可重复的、自包含的单元,可以在任何支持Docker的平台上运行。 4. Docker的仓库 Docker仓库是一个集中存储和管理Docker镜像的地方。Docker Hub是Docker官方提供的公共仓库,可以免费使用。除此之外,还可以搭建自己的私有仓库,用于存储自己的Docker镜像。 5. Docker的服务 Docker服务是一组容器的逻辑分组,可以方便地进行管理和扩展。Docker服务可以通过Docker Compose或Docker Swarm进行管理。 6. Docker的安装 可以在官网上下载对应系统的Docker安装程序进行安装。安装完成后可以通过运行`docker version`命令来验证是否安装成功。 7. Docker使用 可以通过Dockerfile文件来定义Docker镜像的构建规则,然后使用`docker build`命令来构建镜像。使用`docker run`命令来创建并启动一个Docker容器使用`docker pull`命令来从Docker仓库中拉取镜像。使用`docker push`命令将本地的镜像推送到Docker仓库。 以上就是Docker基础知识的汇总。希望可以对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安破戎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值