Docker安装使用(最强干货总结)

Docker 最强干货总结


一、docker介绍

在这里插入图片描述

​ 学习docker之前要明白docker是什么,在通常的了解中,我们明白docker就像是一台虚拟机一样,但是虚拟机既然已经存在,那为什么还需要docker呢?存在及合理,docker的存在必然有其合理性,那么在了解docker之前先要了解一下虚拟化技术。

(一)虚拟化技术

​ 虚拟化(英语: Virtualization)是一种计算机资源管理技术,它将计算机的各种硬件资源,比如磁盘、网络、CPU、内存等硬件资源,予以抽象和转换从而呈现出一套新的硬件资源环境,在这一套新的硬件环境下可以安装我们的操作系统,部署我们的应用运行环境等,它打破了计算机硬件资源不可切割的问题,使我们可以更加充分更加合理地利用计算机硬件资源;

虚拟化一般分为:

硬件级虚拟化(hardware-level-virtualization)

操作系统级虚拟化(os-level-virtualization)
在这里插入图片描述

1.硬件级虚拟

​ 所谓硬件及虚拟化是运行在硬件之上的虚拟化技术,它的核心技术是Hypervisor 发音 [,haipə’vaizə],Hypervisor是一种运行在基础物理服务器硬件之上的软件层,可以虚拟化硬件资源,例如cpu、硬盘、内存、网络资源等,然后我们可以通过在虚拟化出来的资源之上安装操作系统,这也就是所谓的虚拟机,像VMWare, VirtualBox等都是使用该技术。

​ 但是它的缺点和有点也是显然易见的,优点是我们用vm可以贷出多台虚拟,缺点也就是占用大量内存,每创建一个虚拟机的时候,都会创建一个操作系统,这个操作系统会占用很多资源,这样无疑大大的增加了资源的消耗,当安装的虚拟机越多,资源消耗就越多;

2.操作系统级虚拟化

是运行在操作系统之上的虚拟化技术,它模拟的是运行在一个操作系统上的多个不同进程,并将其封装在一个密闭的容器里面,该技术也称为容器化技术,在容器化技术领域,Docker 是目前最流行的一种实现;

(二)docker解读

​ Docker发布于2013 年,基于LXC技术,LXC是Linux 平台上的容器化技术实现;

​ 1、Docker 是一个开源的应用容器引擎,它基于 Google 公司推出的 Go 语言实现,项目代码托管在 GitHub 上进行维护;
https://github.com/docker/docker-ce

​ 2、Docker技术让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,打包好的容器可以发布到任何流行的 Linux 服务器上运行,这样就可以解决开发环境与运维环境不一致的问题了,所以容器技术解决了开发和运维之间的矛盾,让开发专注于开发,运维专注于运维,不要被环境问题所打扰;

容器和虚拟机的区别

容器是将代码和环境的关系打包在一起的一个集合,而虚拟机是在物理层面上,分出来的一个操作系统;

多个容器可以运行在同一台物理服务器上,并共享一个操作系统的内核资源。多个虚拟机也可以运行在同一台机器上,但每个虚拟机都需要一个完整的操作系统;

![在这里插入图片描述](https://img-blog.csdnimg.cn/2e41cf39fe93459aabf0aca5a490f4e5.png

Docker的运行环境部署

(一)Docker的安装

安装前可以查看一下系统是否已经安装了Docker:

 yum list installed | grep docker

同时,我们也要先清除系统中所带有的docker

yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

下载依赖安装包

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

配置镜像仓库

#国外的地址
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo  
    
# 设置阿里云的Docker镜像仓库
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包

yum makecache fast 

安装:

yum install docker-ce docker-ce-cli containerd.io   # 安装社区版
yum install docker-ee docker-ee-cli containerd.io   # 安装企业版
安装社区版,企业版是收费的

可考虑设置开启开机启动

启动:systemctl start docker
开机启动:systemctl enable docker

安装后,使用 查看docker是否安装成功,

docker --version(docker version,docker -v)

随后hello-world

$ docker run hello-world

示例:
Unable to find image 'hello-world:latest' locally  # 本地没有
latest: Pulling from library/hello-world           # pull一个最新版
2db29710123e: Pulservicel complete                        # pull成功
Digest: sha256:10d7d58d5ebd2a652f4d93fdd86da8f265f5318c6a73cc5b6a9798ff6d2b2e67
Status: Downloaded newer image for hello-world:latest

Hello from Docker!                                 # 运行结果
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

查看docker帮助命令;

docker --help 

卸载:

yum remove docker.x86_64 -y           
yum remove docker-client.x86_64 -y         
yum remove docker-common.x86_64 -y

(二)Docker服务启动

​ 安装之后启动 Docker 服务;

启动:systemctl start docker 或者 service docker start 
	
停止:systemctl stop docker 或者 service docker stop

重启:systemctl restart docker 或者 service docker restart

​ 检查docker进程的运行状态:

 systemctl status docker 或者 service docker status

​ 查看docker进程:

ps -ef | grep docker

docker info 查看docker系统信息

docker --help查看所有的帮助信息

docker commond --help 查看某个commond命令的帮助信息

Docker运行机制

在这里插入图片描述

(一)docker容器

​ 根据Docker的运行机制,我们将按照如下步骤运行第一个Docker容器;

​ 1、将Docker服务启动;

​ 2、下载一个镜像,Docker 运行一个容器前需要本地存在有对应的镜像,如果镜像不存在本地,Docker 会从镜像仓库下载(默认是 Docker Hub公共注册服务器中的仓库 https://hub.docker.com)。

那么应该如何下载镜像呢?

​ 先去搜索我们需要的镜像

docker search tomcat  比如搜索tomcat

显示本地已有的镜像:

docker images

可以在网易蜂巢镜像中心 https://c.163yun.com/hub#/m/home/ 下载docker相关镜像,图标上带鲸鱼图标的就是从官网上拉去的镜像,我们就下取带有鲸鱼图标的

下载镜像:

docker pull docker.io/tomcat

运行镜像:

	docker run docker.io/tomcat 前台运行, 要后台运行,加参数 -d

举例nginx

下载docker run hub.c.163.com/library/nginx

后台运行

docker run -d hub.c.163.com/library/nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqXaduNo-1686881548684)(C:\Users\Echo\AppData\Roaming\Typora\typora-user-images\1676557724457.png)]

然而平时我们会进入到nginx中看相关日志,可以通过如下命令进入容器内部:

命令的大体内容:

docker exec -it 02963d2002b bash

-i保证我们的输入有效,即使在没有detach的情况下也能运行.
-t表示将分配给我们一个伪终端.我们将在伪终端输入我们的内容.
后面跟着的是容器的id,即我们上面用ps查询出来的id,这个id可以少写几位,它会自动识别

这是我们的前面表示也发生了变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9iiub1yV-1686881548686)(C:\Users\Echo\AppData\Roaming\Typora\typora-user-images\1676557973352.png)]

可以查询一下nginx在什么位置

which nginx

打开ps查看一下当前运行的进程.我这里提示没有ps命令.我从网上查了一下发现是因为当前系统没有安装这个命令,然后我安装了一下.从命令可以看出,这个nginx容器附带的系统应该是ubuntu不是centos.

安装ps命令
apt-get update
apt-get install procps
然后输入 ps -ef 查看当前进程

刚才我们在运行nginx镜像的时候并没有指定端口映射,所以我们这里停掉nginx容器.

docker stop containerId

docker相关命令

1、启动所有容器

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

2、关闭所有容器

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

3、删除所有容器

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

4、删除所有镜像(慎用)

docker rmi $(docker images | awk '{print $3}' |tail -n +2)

5、拉取容器并启动

docker run ~~~

6、启动容器

docker start 'CONTAINER ID'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值