docker基础用法

本文介绍了docker的基础用法,包括oci和ocf标准,docker架构,镜像与镜像仓库,以及docker对象。重点讲述了docker的安装、镜像的获取以及容器的创建和管理,为读者提供了全面的docker入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


docker基础用法


什么是docker(管理容器的一个工具)

docker中的容器:

  • lxc --> libcontainer --> runC

img

OCI&OCF

OCI

Open Container-initiative

  • 由Linux基金会主导于2015年6月创立
  • 旨在围绕容器格式和运行时制定一个开放的工业化标准
  • contains two specifications(包含两个特征)
    • the Runtime Specification(runtime-spec)(运行时特征)
    • the Image Specification(image-spec)(镜像特征)

OCF

Open Container Format

runC is a CLI tool for spawning and running containers according to the OCI specification( runC是一个CLI工具,用于根据OCI规范生成和运行容器 )

  • Containers are started as a child process of runC and can be embedded into various other systems without having to run a daemon

    容器作为runC的子进程启动,可以嵌入到其他各种系统中,而不需要运行守护进程

  • runC is built on libcontainer, the same container technology powering millions of Docker Engine installations

    runC构建在libcontainer之上,同样的容器技术支撑着数以百万计的Docker Engine安装

docker提供了一个专门容纳容器镜像的站点:https://hub.docker.com

docker架构

img

docker -ee企业版

docker-ce社区版

docker镜像与镜像仓库

为什么镜像仓库名字是Registry而不是repository?在docker中仓库的名字是以应用的名称取名的。

img

镜像是静态的,而容器是动态的,容器有其生命周期,镜像与容器的关系类似于程序与进程的关系。镜像类似于文件系统中的程序文件,而容器则类似于将一个程序运行起来的状态,也即进程。所以容器是可以删除的,容器被删除后其镜像是不会被删除的。

docker对象

When you use docker, you are creating and using images, containers, networks, volumes, pluginns, and other objects.

当你使用docker时,你是在创建和使用镜像、容器、网络、卷、插件和其他对象。

  • IMAGES(镜像)

    • An image is a read-only template with instructions for creating a docker container.

      镜像是一个只读模板,带有创建docker容器的说明。

    • Often, an image is based on another image, with some additional customization.

      通常,一个镜像是基于另一个镜像,有一些额外的定制。

    • You might create your own images or you might only use those created by others and published in a registry.

      您可以创建自己的镜像,也可以只使用其他人创建的并在注册表中发布的镜像

  • CONTAINERS(容器)

    • A conntainer is a runnable instance of an image.

      容器是镜像的可运行实例。

    • You can create, run, stop, move, or delete a container using the docker API or CLI.

      可以通过docker API或CLI创建、运行、停止、移动或删除容器

    • You can connect a container to one or more networks, attach storage to it, or even create a new image based on its current state.

      您可以将一个容器连接到一个或多个网络,将存储附加到它,甚至根据它的当前状态创建一个新的镜像。

安装及使用docker

docker安装

[root@duanruhui ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.5 (Ootpa)//查看主机的系统版本
[root@duanruhui yum.repos.d]# ls
CentOS-Base.repo   epel-testing-modular.repo
docker-ce.repo     epel-testing.repo
epel-modular.repo  epel.repo //安装docker 源

[root@duanruhui ]#yum -y install docker-ce

[root@duanruhui ~]# systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

docker加速

docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。

docker的加速有多种方式:

  • docker cn
  • 中国科技大学加速器
  • 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)
阿里云加速器
[root@duanruhui ~]# cd /etc/docker/
[root@duanruhui docker]# ls
key.json
[root@duanruhui docker]# vi daemon.json
[root@duanruhui docker]# cat daemon.json 
{
  "registry-mirrors": ["https://rt1qo0sq.mirror.aliyuncs.com"]
}

[root@duanruhui docker]# systemctl daemon-reload
[root@duanruhui docker]# systemctl restart docker


docker常用操作

命令功能
docker search用命令行的形式查看duoker的镜像
docker pull下载镜像
dockerimages列出镜像
docker create创建一个新容器
docker start开启一个新容器
docker run在一个新的容器里运行命令
docker attach进入一个正在运行的容器
docker ps列出容器
docker logs查看容器的日志
docker restart重启容器
docker stop停止容器
docker kill杀死一个容器
docker rm删除一个容器
docker exec在一个运行的容器里运行命令
docker info列出duocker的运行环境
docker inspect返回Docker对象的低级信息
[root@duanruhui docker]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.1-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)
......

[root@duanruhui ~]# docker search httpd
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
httpd                                The Apache HTTP Server Project                  3976      [OK]       
centos/httpd-24-centos7              Platform for running Apache httpd 2.4 or bui…   44                   
centos/httpd                        
.....
[root@duanruhui ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@duanruhui ~]# docker pull httpd
latest: Pulling from library/httpd
a2abf6c4d29d: Pull complete 
dcc4698797c8: Pull complete 
41c22baa66ec: Pull complete 
67283bbdd4a0: Pull complete 
d982c879c57e: Pull complete 
Digest: sha256:0954cc1af252d824860b2c5dc0a10720af2b7a3d3435581ca788dff8480c7b32
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
[root@duanruhui ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
httpd        latest    dabbfbe0c57b   4 months ago   144MB

[root@duanruhui ~]# docker create --name web -p 80:80 httpd
240ed11aa7b1b253753de34a183f9e74c0de60d80c5f674508f6111698852ef6

[root@duanruhui ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@duanruhui ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS    PORTS     NAMES
240ed11aa7b1   httpd     "httpd-foreground"   50 seconds ago   Created             web
[root@duanruhui ~]# docker start web
web

[root@duanruhui ~]# docker start web
web
[root@duanruhui ~]# docker stop web
web
[root@duanruhui ~]# docker start web
web
[root@duanruhui ~]# docker kill web
web
[root@duanruhui ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

[root@duanruhui ~]# docker rm web 
web

docker event state

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值