docker (简介、dcoker详细安装步骤、常用命令)- day01

一、 为什么出现

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

Docker的主要目标是"Build,Ship and Run Any App,Anywhere",也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到**"一次镜像,处处运行"**

Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机器上就可以一键部署好,大大简化了操作。

二、docker 和 传统的虚拟机对比

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
  • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

三、docker基本组成(三要素)

镜像(Image)

镜像是就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

理解:Image 可以看成java类,容器可以看成java类 new出来的实例

容器(Container)

容器是独立运行的一个或一组应用。容器是用镜像创建的运行实例。

它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

仓库(Repository)

仓库是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

四、安装docker

  1. 确定你是centos 7 以上的版本(默认在管理员权限下,不在先切换) :
XML 复制代码
cat /etc/redhat-release 
  1. 如果以前装过卸载旧版本
XML 复制代码
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

3.yum 安装gcc相关:

  • 首先,保证系统能上外网
  • gcc:它是一个自由开源的编译器工具集,能够编译多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 和其他一些编程语言。
XML 复制代码
gcc -v 查看系统是否安装gcc

----- 安装命令
yum -y install gcc  

yum -y install gcc-c++

4.安装需要的软件包

  • 先检查下是否已经安装yum-utils :yum list installed | grep yum-utils 或者 yum install -y yum-utils
  • yum-utils 简介:是一款由CentOS官方开发的Linux包管理工具,它是yum软件包管理器的扩展,提供了一系列额外的命令和脚本,可以帮助Linux系统管理员更好地管理依赖关系、配置文件、软件包更新等方面的工作。
XML 复制代码
yum install -y yum-utils

5.安装镜像仓库

  • 此处我们不使用 docker官网仓库,使用阿里云的国内仓库,国外太慢
XML 复制代码
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6.更新yum软件包的索引

作用:更新yum软件包的索引,能够使系统管理员更加方便地查找和安装软件包

XML 复制代码
centos 7 :
yum makecache fast

centos 8 :
yum makecache

7.安装docker引擎

先更新yum(包、内核)此处可以不更新,会更新linux所有安装包包、,导致意外 ,升级所有包同时也升级软件和系统内核。 更新完后需要重启系统 : reboot

yum出问题:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

可以参考:【已解决】Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist-CSDN博客

XML 复制代码
 yum -y update

安装最新版本的 Docker Engine-Community 和 containerd,安装过程中会出现两次:Is this ok [y/N]: y ,都输入y,然后按Enter键

XML 复制代码
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

查看是否开机启动

XML 复制代码
sudo systemctl list-unit-files | grep enable

开机启动

XML 复制代码
sudo systemctl enable docker.service

8.启动dcoker

XML 复制代码
sudo systemctl start docker

查看docker 服务

XML 复制代码
ps -ef|grep docker

9.测试docker

通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community

XML 复制代码
 sudo docker run hello-world

看到下面表示运行成功!

10.查看docker版本

XML 复制代码
docker -v
XML 复制代码
docker version

11.安装成功后需重启docker

XML 复制代码
systemctl restart docker

或者

XML 复制代码
service docker restart

五、阿里云镜像加速器配置

新建文件夹

XML 复制代码
mkdir -p /etc/docker

设置镜像加速地址

XML 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://nmmxt7ol.mirror.aliyuncs.com"]
}
EOF

重新启动docker

XML 复制代码
sudo systemctl daemon-reload

sudo systemctl restart docker

六、doker常用的命令整理

XML 复制代码
以下是Docker的一些常用命令,按功能分类:

帮助启动类命令:
启动docker: systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查看docker总体帮助文档: docker --help
查看docker命令帮助文档: docker 具体命令--help

1. 查看容器和镜像
docker images:查看所有本地Docker镜像。
docker ps:列出正在运行的容器。
docker ps-l:列出最后一次创建的容器。
docker inspect:查看容器的底层信息。
docker system df 查看镜像/容器/数据卷所占的空间

2. 容器管理
docker run:启动一个新的容器。
docker start:启动一个已经存在的容器。
docker stop:停止一个正在运行的容器。
docker rmi 镜像名/镜像ID :删除一个容器,必须为停止状态。
docker rmi -f 镜像名/镜像ID 强制删除容器
docker rmi -f $(docker images -qa) 删除docker引擎中的全部镜像
docker ps -a:查看所有容器,包括已经停止的。

3. 镜像管理
docker search 镜像名 :搜索某个镜像
docker pull:从Docker镜像仓库中下载镜像。
docker tag:给本地镜像添加标签。
docker images -d:列出本地所有镜像,包括没有使用的缓存镜像。

docker rmi:删除本地一个或多个镜像。

4. 数据管理
docker cp:从容器中拷贝文件到本地文件系统,或从本地文件系统拷贝文件到容器中。
docker exec:在正在运行的容器中执行命令。
docker logs:查看容器内标准输出。
docker top:查看容器内部运行的进程。
docker port:查看容器的端口映射。
以上是Docker的一些常用命令,希望可以帮助到您。

七、容器命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]	新建/启动容器
docker run -it IMAGE [COMMAND] [ARG...]	启动交互式容器
docker run --name=容器名 IMAGE [COMMAND] [ARG...]	新建指定名字的容器
docker run -d IMAGE [COMMAND] [ARG...]	为容器开启守护进程
docker ps [OPTIONS]	列出当前正在运行的所有容器
exit	退出容器,容器停止
快捷键ctrl+p+q	退出容器,容器不停止
docker start 容器ID或者容器名	启动已停止运行的容器
docker restart 容器ID或者容器名	重启容器
docker stop 容器ID或者容器名	停止容器
docker kill 容器ID或容器名	强制停止容器
docker rm 容器ID	删除已停止的容器:
docker rm -f 容器名/容器ID	强制删除正在运行的容器
docker rm -f $(docker ps -a -q)	一次性删除多个容器实例
docker logs 容器ID	查看容器日志
docker top 容器ID	查看容器内运行的进程
docker inspect 容器ID	查看容器内部的细节
docker exec -it 容器ID bashShell	进入正在运行的容器并以命令行交互
docker cp 容器ID:容器路径 主机路径	从容器内拷贝文件到主机上
docker export 容器ID > 文件名.tar	导出容器为一个tar文件
`cat 文件名.tar	docker import - 镜像用户/镜像名:镜像版本

新建/启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

启动交互式容器

docker run -it IMAGE [COMMAND] [ARG...]

新建指定名字的容器

docker run --name=容器名 IMAGE [COMMAND] [ARG...]

为容器开启守护进程

docker run -d IMAGE [COMMAND] [ARG...]

OPTIONS说明(常用):有些是一个减号,有些是两个减号

--name="容器新名字":为容器指定一个名称;

-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i同时使用;也即启动交互式容器(前台有伪终端,等待交互);

-P: 随机端口映射,大写P

-p: 指定端口映射,小写p

相关推荐
Miqiuha3 分钟前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐1 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
加油,旭杏2 小时前
【中间件学习】fastCG介绍和使用
学习·nginx·fastcgi
limengshi1383922 小时前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信
GFCGUO3 小时前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
丝丝不是土豆丝4 小时前
学习 CSS 新的属性 conic-gradient 实现环形进度条
学习
S hh4 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习
唐大爹4 小时前
项目实战:k8s部署考试系统
云原生·容器·kubernetes
wusam5 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
攸攸太上5 小时前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway