一、Docker是什么
Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
二、Docker 核心概念
docker客户端(Client):连接docker主机进行操作;
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
docker容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
docker仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
三、Docker 版本
Docker有两个版本:社区版Community Edition (CE) 和 企业版Enterprise Edition (EE)。
Docker Community Edition(CE)主要是适合单个开发人员和小团队使用Docker容器进行应用程序的开发。Docker CE有三种更新通道:稳定的(Stable)、测试中的(Test)和每日夜间更新(Nightly)。
Stable提供了最新的通用稳定的版本。Test 提供了准备好测试的预发布版本,可能bug较多。Nightly提供正在进行开发的最新版本,每日夜间发布一次。一般情况下,为了避免一些不必要的麻烦使用稳定版本,当然你可能要为了尝鲜,可以试着用测试中版本或夜间更新的版本。
四、 在linux虚拟机上安装docker
1、 检查内核版本,必须是3.10及以上 ,采用命令“uname ‐r”
[root@icoolkj ~]# uname -r
5.10.84-10.2.al8.x86_64
[root@icoolkj ~]#
2、安装docker-ce
1)安装所需软件包
yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
[root@icoolkj ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
..............
..............
完毕!
[root@icoolkj ~]#
2)设置yum国内镜像源(选其一)
//官方源地址(比较慢)
[root@icoolkj ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//阿里云
[root@icoolkj ~]# yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//清华大学源
[root@icoolkj ~]# yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
3)yum指令安装docker-ce
[root@icoolkj ~]# yum install docker-ce
3、启动docker
[root@icoolkj ~]# systemctl start docker
[root@icoolkj ~]#
4、开机启动docker(必要)
[root@icoolkj ~]# systemctl enable docker
[root@icoolkj ~]#
5、docker版本
[root@icoolkj ~]# docker -v
Docker version 20.10.16, build aa7e414
[root@icoolkj ~]#
当然,若不想用docker,想停止可以用“systemctl stop docker”命令。
五、常用命令
attach Attach to a running container # 当前shell下attach连接指定运行的镜像
build Build an image from a Dockerfile # 通过Dockerfile定制镜像
commit Create a new image from a container changes #提交当前容器为新的镜像
cp Copy files/folders between a container and the local filesystem #从容器中拷贝指定文件或目录到宿主机中
create Create a new container # 创建一个新的容器,同run,但不启动容器
diff Inspect changes to files or directories on a container‘s filesystem #查看docker容器的变化
events Get real time events from the server # 从docker服务获取容器实时事件
exec Run a command in a running container # 在已存在的容器上运行命令
export Export a container filesystem as a tar archive # 导出容器的内容流作为一个tar归档文件[对应import]
history Show the history of an image # 展示一个镜像形成历史
images List images # 列出系统当前的镜像
import Import the contents from a tarball to create a filesystem image # 从tar包中的内容创建一个新的文件系统镜像[对应export]
info Display system-wide information # 显示系统相关信息
inspect Return low-level information on Docker objects # 查看容器详细信息
kill Kill one or more running containers # 杀死指定的docker容器
load Load an image from a tar archive or STDIN # 从一个tar包加载一个镜像[对应save]
login Log in to a Docker registry # 注册或者登录一个docker源服务器
logout Log out from a Docker registry # 从当前Docker registry退出
logs Fetch the logs of a container # 输出当前容器日志信息
pause Pause all processes within one or more containers # 暂停容器
port List port mappings or a specific mapping for the container # 查看映射端口对应容器内部源端口
ps List containers # 列出容器列表
pull Pull an image or a repository from a registry # 从docker镜像源服务器拉取指定镜像或库镜像
push Push an image or a repository to a registry # 推送指定镜像或者库镜像至docker源服务器
rename Rename a container # 给docker容器重新命名
restart Restart one or more containers # 重启运行的容器
rm Remove one or more containers # 移除一个或者多个容器
rmi Remove one or more images # 移除一个或者多个镜像[无容器使用该镜像时才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run Run a command in a new container # 创建一个新的容器并运行一个命令
save Save one or more images to a tar archive (streamed to STDOUT by default) # 保存一个镜像为一个tar包[对应load]
search Search the Docker Hub for images # 在docker hub中搜索镜像
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 # 停止容器
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE # 给源中镜像打标签
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 # 更新一个或多个容器配置
version Show the Docker version information # 查看docker版本号
wait Block until one or more containers stop, then print their exit codes # 截取容器停止时的退出状态值
六、安装错误总结
1、docker运行时提示错误
[root@icoolkj ~]# systemctl start docker
Failed to start docker.service: Unit docker.service not found.
[root@icoolkj ~]#
安装docker的时输入的指令”yum y install docker”不准确,导致系统以为我们想装的是podman-docker 。
删除原有的podman-docker并输入准确的安装指令,指定docker版本类型进行安装(参考步骤四)。
[root@icoolkj ~]# dnf remove podman
..............
..............
完毕!
[root@icoolkj ~]#