docker入门(一)安装及镜像命令

  • Docker简介

docker官网:  www.docker.com 
dockerhub
官网: hub.docker.com  现在已经进不去,所以等会配置国内的镜像源

docker文档官网:docs.docker.com

Docker是基于Go语言实现的云开源项目。

  1. docker是解决什么问题的

想必大家在网上刷到过这样的段子吧

运维/测试:开发,你写的程序不能跑起来呀!!!

开发:你看,它在这能跑呀,不是我的问题

那为什么会出现这种问题呢?

这是由于环境不一致导致的。比如开发用的是ubuntu,而运维用centos,从而环境不一致,导致了程序可能不能正常运行

于是有人在想能不能从根本上解决问题。软件带环境安装,也就是说安装的时候把原始环境一模一样地复制过来。

于是就诞生了docker,我们就可以把跑通的程序的源码+配置+环境+版本等统一打包成一个镜像问题。也就是说以前开发提交的只是一份源代码,但是现在变成了源码+配置+环境+依赖包等等。就好比搬家,没有docker之前我只能将里面的东西带走,但是有了docker后我就可以把整栋楼搬走。

其实就类似于vmware虚拟机那样,既然虚拟机能把整个系统都打包,那docker就是把程序依赖打包。

  1. 确认安装环境符合要求

Docker并非是一个通用的容器工具,它依赖存在并运行中的Linux内核环境。此外,对Linux也有一定要求,要求64位、Linux系统内核版本为3.1以上。注意:是强依赖Linux环境,即便在windows上部署Docker其本质也都是先安装一个虚拟机,然后在虚拟出来的Linux上再安装并运行Docker。

  1. docker 的基本组成

Docker 客户端负责与 Docker 服务端通信,执行 Docker 命令,申请容器、镜像等;

Docker 服务端则管理和控制所有的 Docker 容器和镜像。

Docker 镜像(Image):

Docker 镜像是用来创建 Docker 容器的模板。

它包含应用程序代码、库、运行环境和配置文件,类似于虚拟机的镜像。

Docker 镜像可以通过 Dockerfile 或从 Docker 中央仓库中拉取构建。

Docker 容器(Container):

Docker 容器是 Docker 镜像的实例化运行时,它是一个分离的环境,包含了应用程序和其依赖项,能够独立运行于 Docker 主机上。

Docker Registry:

Docker Registry 是一个中央存储库,用于存储 Docker 镜像。

Docker Hub 是 Docker 官方提供的 Registry,也可以通过私有 Registry 将 Docker 镜像推送和拉取到远程服务器上。

Docker Compose:

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,它使用 YAML 文件来定义整个应用程序的服务、网络和卷等,使得可以轻松地部署和扩展多个 Docker 容器。

  • 安装docker

1.安装镜像源

首先要安装一个yum工具,因为默认 yum-config-manager 默认没安装,其在yum-utils中所以这里先安装yum-utils。

安装成功后

yum install -y yum-utils

,执行命令,配置Docker的yum源:

这里我们配置阿里的镜像源

​
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

​

更新缓存

yum makecache fast

2.安装docker engine

如何知道 docker-ce ,docker-ce-cli 这个名字的

(1)首先是安装 .repo

(2)安装后根据自己知道的关键词即"docker"去搜,执行 "yum search docker" 。

        输出如下,去掉后面的.x86_64就是软件全名了(即"docker-ce"、"docker-ce-cli")。

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3.启动docker

systemctl start docker

查看状态是否运行/版本

systemctl status docker

docker version
  1. 配置镜像加速

这里配置阿里的镜像加速,因为我使用阿里的镜像源

安装docker软件后,可以通过docker pull命令拉取镜像。如果没有配置镜像加速源,直接拉取会比较慢。

vi  /etc/docker/daemon.json #初次进来可能没有此文件,创建即可。

这些是目前还好用的,且用且珍惜,可能那天就用不了了。

今天9月29号亲测可用

{

"registry-mirrors": [

   "https://docker.registry.cyou",

   "https://docker-cf.registry.cyou",

   "https://dockercf.jsdelivr.fyi",

   "https://docker.jsdelivr.fyi",

   "https://dockertest.jsdelivr.fyi",

   "https://mirror.aliyuncs.com",

   "https://dockerproxy.com",

   "https://mirror.baidubce.com",

   "https://docker.m.daocloud.io",

   "https://docker.nju.edu.cn",

   "https://docker.mirrors.sjtug.sjtu.edu.cn",

   "https://docker.mirrors.ustc.edu.cn",

   "https://mirror.iscas.ac.cn",

   "https://docker.rainbond.cc",

   "https://o8x6xdh9.mirror.aliyuncs.com" # 这个是阿里云的镜像加速

 ]

}

重新启动docker


systemctl daemon-reload

systemctl restart docker
  • 镜像命令

1.查看所有拉取的镜像

刚安装是没有的

  1. #各项含义如下
  2. repository:镜像仓库源
  3. tag: 镜像的版本(默认就是最新版本)。
  4. image id:镜像id
  5. created:镜像创建时间
  6. size:镜像大小

[root@localhost ~]# docker images

REPOSITORY                                                                      TAG       IMAGE ID       CREATED         SIZE

crpi-77tggdqcd7cpajh6.cn-chengdu.personal.cr.aliyuncs.com/luocailian/myubuntu   1.0       b1e9cef3f297   4 weeks ago     78.1MB

ubuntu                                                                          latest    b1e9cef3f297   4 weeks ago     78.1MB

nginx                                                                           latest    39286ab8a5e1   6 weeks ago     188MB

mysql                                                                           5.7       5107333e08a8   9 months ago    501MB

registry                                                                        latest    75ef5b734af4   12 months ago   25.4MB

hello-world                                                                     latest    d2c94e258dcb   17 months ago   13.3kB

mongo                                                                           4.0       fb1435e8841c   2 years ago     430MB

redis                                                                           6.0.8     16ecd2772934   3 years ago     104MB

2.拉取镜像

下载镜像。没有TAG就是最新版本即latest。

[root@localhost ~]# docker pull hello-world

Using default tag: latest

latest: Pulling from library/hello-world

c1ec31eb5944: Pull complete

Digest: sha256:91fb4b041da273d5a3273b6d587d62d518300a6ad268b28628f74997b93171b2

Status: Downloaded newer image for hello-world:latest

docker.io/library/hello-world:latest

3.查看镜像/容器/数据卷所占的空间

[root@localhost ~]# docker system df

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE

Images          7         1         1.327GB   1.302GB (98%)

Containers      3         0         0B        0B

Local Volumes   5         0         237.5MB   237.5MB (100%)

Build Cache     0         0         0B        0B

4.删除某个镜像

"rmi"即remove image。

5.镜像归档

docker save 命令用于将Docker镜像保存成tar包(镜像归档);docker load为其反操作。

这里举例将hello-world镜像归档
#使用docker pull命令拉取hello-world镜像

docker pull hello-world

#指定docker images查看镜像

[root@localhost ~]# docker images

REPOSITORY                                                                      TAG       IMAGE ID       CREATED         SIZE

crpi-77tggdqcd7cpajh6.cn-chengdu.personal.cr.aliyuncs.com/luocailian/myubuntu   1.0       b1e9cef3f297   4 weeks ago     78.1MB

ubuntu                                                                          latest    b1e9cef3f297   4 weeks ago     78.1MB

nginx                                                                           latest    39286ab8a5e1   6 weeks ago     188MB

mysql                                                                           5.7       5107333e08a8   9 months ago    501MB

registry                                                                        latest    75ef5b734af4   12 months ago   25.4MB

hello-world                                                                     latest    d2c94e258dcb   17 months ago   13.3kB


#使用docker save将hello-world镜像归档成文件并写入本地

root@localhost ~]# docker save -o myhello_world.tar 75ef5b734af4

-o 指定文件名  75ef5b734af4 镜像id

[root@localhost ~]# ls

anaconda-ks.cfg  my_hello  myhello_world.tar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值