-
Docker简介
docker官网: www.docker.com
dockerhub官网: hub.docker.com 现在已经进不去,所以等会配置国内的镜像源
docker文档官网:docs.docker.com
Docker是基于Go语言实现的云开源项目。
-
docker是解决什么问题的
想必大家在网上刷到过这样的段子吧
运维/测试:开发,你写的程序不能跑起来呀!!!
开发:你看,它在这能跑呀,不是我的问题
那为什么会出现这种问题呢?
这是由于环境不一致导致的。比如开发用的是ubuntu,而运维用centos,从而环境不一致,导致了程序可能不能正常运行
于是有人在想能不能从根本上解决问题。软件带环境安装,也就是说安装的时候把原始环境一模一样地复制过来。
于是就诞生了docker,我们就可以把跑通的程序的源码+配置+环境+版本等统一打包成一个镜像问题。也就是说以前开发提交的只是一份源代码,但是现在变成了源码+配置+环境+依赖包等等。就好比搬家,没有docker之前我只能将里面的东西带走,但是有了docker后我就可以把整栋楼搬走。
其实就类似于vmware虚拟机那样,既然虚拟机能把整个系统都打包,那docker就是把程序依赖打包。
-
确认安装环境符合要求
Docker并非是一个通用的容器工具,它依赖存在并运行中的Linux内核环境。此外,对Linux也有一定要求,要求64位、Linux系统内核版本为3.1以上。注意:是强依赖Linux环境,即便在windows上部署Docker其本质也都是先安装一个虚拟机,然后在虚拟出来的Linux上再安装并运行Docker。
-
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
- 配置镜像加速
这里配置阿里的镜像加速,因为我使用阿里的镜像源
安装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.查看所有拉取的镜像
刚安装是没有的
- #各项含义如下
- repository:镜像仓库源
- tag: 镜像的版本(默认就是最新版本)。
- image id:镜像id
- created:镜像创建时间
- 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
标签:ago,入门,https,镜像,docker,Docker,latest
From: https://blog.csdn.net/LCL_18/article/details/142632245