您的位置:首页 > 财经 > 金融 > 鱼巴适设计师服务平台_优化设计电子版在哪找_网站设计制作哪家好_英文seo是什么意思

鱼巴适设计师服务平台_优化设计电子版在哪找_网站设计制作哪家好_英文seo是什么意思

2025/1/12 18:51:25 来源:https://blog.csdn.net/2401_87121330/article/details/145009443  浏览:    关键词:鱼巴适设计师服务平台_优化设计电子版在哪找_网站设计制作哪家好_英文seo是什么意思
鱼巴适设计师服务平台_优化设计电子版在哪找_网站设计制作哪家好_英文seo是什么意思

docker基础

1.概念

概述

        docker是一个开源的应用容器引擎,基于go语言开发的,使用的apache2.0的协议。

        docker是在Linux里面运行的容器化的开源工具。是一种轻量级的虚拟机。

        鲸鱼是宿主机

        集装箱是一个个独立的应用。每个应用之间都是互相隔离和独立的。

容器的生命周期

  • 封装

  • 发布

  • 部署

  • 运行

  • 销毁

        容器的生命周期----->达到一次封装,多次运行的目的

        可移植,可扩展,兼容性的目的,随时随地都可以快速的部署和使用docker的应用。

        docker是在Linux上运行,与其他的容器共享主机的内核,包括其他的资源(CPU,内存,硬盘),但是每个docker应用都是独立的进程。

docker应用独立的原因

        linux的命名空间 namespace 可以实现资源的隔离;

        cgroup 可以实现对docker应用程序的资源限制

        namespace是内核的一种特性,允许将一组系统资源进行隔离,使得一个命名空间中的进程看起来像在系统中拥有独立的资源。

namespace的6个命名空间

(1)UTS

        系统调用的参数 clone_newuts

        隔离的内容:主机名和域名,在每个应用中,都能看到自己的主机名和域名,与其他进程分隔开。

(2)PID 进程隔离

        隔离内容:进程编号,当运行应用之后,每个应用都有自己的独立的进程编号空间,每个程序之间不会发生冲突。

(3)network 网络隔离

        隔离内容:每个应用启动之后,都有自己独立的网络空间,隔离网络设备,端口,和网络栈。

(4)mount 隔离文件系统

        隔离内容:隔离文件系统,每个应用挂载之后都有自己独立的文件系统挂载点,这些挂载点互不冲突,也不会互相干扰。

(5)IPC 隔离通信资源

        隔离内容:隔离的是信号量,消息队列和共享内存,在ipc隔离当中,每个进程之间都有独立的通信资源。

(6)user 隔离用户和用户组

        隔离内容:用户和用户组,每个用户和用户组都是独立的命名空间,不同的用户和用户组之间是隔离开的。

docker的核心组件

(1)仓库

        docker的仓库是用来保存镜像的地方,也是获取镜像和上传镜像的目的地。

(2)镜像

        docker的镜像是创建容器的基础,一个镜像就类似于一个可执行的、包含源码的二进制包,包括容器运行的参数,设置,环境变量和配置文件。实际上就是一个打包好的可运行程序。

(3)容器

         容器是基于镜像创建的运行的实例。

2.安装

安装docker 

apt-get update

apt-get install ca-certificates curl gnupg

install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
apt-get update

apt -y install docker-ce=5:24.0.1-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.1-1~ubuntu.22.04~jammy containerd.io docker-buildx-plugin docker-compose-plugin

#检测是否安装成功

docker -v

dockerd -v

获取镜像

vim /etc/docker/daemon.json

{

"registry-mirrors": [

        "https://docker.unsee.tech",

        "https://dockerpull.org",

        "https://docker.1panel.live",

         "https://dockerhub.icu"

        ]

}

systemctl daemon-reload

systemctl restart docker

docker pull nginx:1.22

docker pull ubuntu:22.04

 

3.docker的基本命令

(1)查看本地镜像

docker images #查看当前已经下载到本地的镜像

  • REPOSITORY 应用的名称
  • TAG 标签,镜像的标签,应用的版本
  • IMAGE ID 镜像id
  • CREATED 发布在镜像仓库的时间
  • SIZE 镜像的大小

(2)查看镜像的详细信息

docker inspect 镜像id

 

        镜像下载后的信息:下载完之后保存在/var/lib/docker

  • overlay2 镜像的联合文件系统。
  • lowerDir:镜像的底层文件系统,整个镜像根文件系统(运行载体)。
  • UpperDir:可写层,用户可以自定义的在底层文件系统上进行修改,但是这些修改又不影响根文件系统,容器可以实现读写。
  • MergedDir:合并目录,就是用户看到容器内的一个视图。
  • WorkDir:工作目录,进行写操作,可以使overlay2更新和跟踪对于文件系统的修改。

(3)修改镜像的标签

docker tag nginx:1.22 nginx:test

#给nginx:1.22做了一个副本

#修改已有的应用的标签,方便用户使用

镜像的组成:

nginx:1.22

镜像名 标签

 

(4)删除镜像

docekr rmi -f nginx:test  删除镜像(慎用)

(5)导出/导入镜像

docker save -o /opt/ubuntu.tar ubuntu:22.04

#把本地镜像导出到指定位置,保存为指定名称

docker load -i centos.tar  #把镜像导入到本地

 (6)创建容器

docker run -itd ubuntu:22.04

docker run -itd --name test1 ubuntu:22.04

#

run:如果本地不存在指定的镜像,它会自动去仓库拉取指定的镜像,然后再创建容器。

-i:表示容器开启标准输入,接受用户输入的指定

-t:生成一个伪终端tty,用户可以进入容器的内部

-d:容器创建完成之后进入后台运行

--name 自定义容器的名称

docker run --name test2 nginx:test /bin/bash -c "ls /"

#执行ls / 命令之后,就会结束生命周期

 (7)查看容器的状态

docker ps  #查看状态是running的容器

docker ps -a  #查看所有状态的容器,包括运行和停止以及报错的容器。

出现exit的原因:

容器启动之后,都会有一个执行的命令,如果该命令执行完毕之后没有其他的可执行内容,那么容器会立刻退出进入终止状态。

(8)进入容器内部  

docker exec -it 容器id/名称 /bin/bash 或者 bash

(9)容器和宿主机之间的交互

容器的文件复制到宿主机

docker cp test3:/var/log/nginx/access.log /opt

宿主机的文件复制到容器内部

docker cp sources.lsit test3:/etc/apt

查看容器的标准输出(查看日志)

docker logs -f 容器名称或容器ID#动态查看容器的日志  

 (10)端口映射

-p 需要人工指定宿主机的端口和容器进行映射 只要指定端口宿主机没有被占用,都可以使用

-P 指定宿主机的随机端口和容器内的端口进行映射,从32768开始---65535

docker run -itd --name nginx1 -P nginx:test

docker ps

curl 192.168.206.30:32769

docker run -itd --name nginx2 -p 88:80 nginx:test

88宿主机端口 80容器内部端口

做了端口映射,就可以对外提供服务了

(11)强制删除容器

docker rm -f nginx2

#强制删除

不强制删除就要先关闭容器再删除

 

(12)查看容器的ip地址

 docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' test1

(13)批量删除容器

 docker ps -a | awk 'NR>=2{print $1}' | xargs docker rm -f

(14)批量清理所有后台已经停止的容器

docker rm $(docker ps -a -q)

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com