不到断气不罢休 发表于 2024-9-8 23:15:01

Docker

Docker

        什么是Docker

                Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目厥后加入了 Linux 基金会,服从了 Apache 2.0 协议,项目代码在 GitHub 上举行维护。
        Docker三大核心概念      

                镜像:

                        Docker 的镜像是创建容器的底子,雷同假造机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。例如:一个镜像可以是一个完整的 Cent OS 操作系统环境,称为一个 CentOS 镜像;也可以是一个安装了 MySQL 的应用步伐,称之为一个 MySQL 镜像等等。
Docker 提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经创建好的镜像直接使用。
                容器:

                        Docker 的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器 都是相互隔离、互不可见,以包管安全性的平台。可以将容器看作是一个浅易版的 Linux 环境, Docker 利用容器来运行和隔离应用。
                仓库:

                        Docker 仓库是用来集中生存镜像的地方,当创建了本身的镜像之后,可以使用 push 命令将它 上传到公有仓库(Public)或者私有仓库(Private)。当下次要在别的一台呆板上使用这个镜像 时,只需从仓库获取
安装Docker

        安装最新版Docker

                使用yum仓库安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum -y install docker-ce docker-ce-cli containerd.io                 使用curl安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun                 使用阿里云安装docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
        启动Docker并设置为开机自启动

# 启动服务
systemctl start docker
systemctl enable docker         查察Docker版本

                安装好的 Docker 系统有两个步伐,Docker 服务端和 Docker 客户端。此中 Docker 服务端是一个服务历程,负责管理所有容器。Docker 客户端则扮演着 Docker 服务端的远程控制器,可以用来控制 Docker 的服务端历程。大部分环境下 Docker 服务端和客户端运行在一台呆板上
docker version Docker镜像操作

        搜索镜像

docker search nginx         获取镜像

#docker pull 仓库名称[:标签]
docker pull nginx
docker pull nginx:1.20         查察镜像信息

#docker images 仓库名称:[标签]
#例如:查看本地所有镜像
docker images
#另一种写法
docker image ls
#根据镜像的唯一标识 ID 号,获取镜像详细信息
docker inspect c20060033e06         为当地镜像添加标签

#docker tag名称:[标签]新名称:[新标签]
docker tag nginx nginx_test:1.0         镜像导出

docker save -o nginx-latest.tar nginx:latest
docker save -o nginx-1.20.tar nginx:1.20         删除镜像

#用名字删除
docker pull nginx:1.20
#用id号删除
docker pull c20060033e06
#在尾部添加-f选项即可强制删除

#删除所有镜像
docker images -q | xargs docker rmi -f         导入镜像

docker load < nginx-latest.tar


docker load -i nginx_latest.tar         查察镜像的信息

#docker inspect 要显示的详情
docker inspect nginx:latest         修改镜像名称

#docker tag 旧名字 新名字
docker tag nginx nginx_kgc:v1 容器

        容器是 Docker 的另一个核心概念。简单说,容器是镜像的一个运行实例,是独立运行的一个 或一组应用以及它们所必需的运行环境,包括文件系统、系统类库、shell 环境等。镜像是只读模 板,而容器会给这个只读模板添加一个额外的可写层
        容器的创建

#docker create [选项]镜像 运行的程序
#常用选项:
#-i 让容器的输入保持打开
#-t 让 Docker 分配一个伪终端
#--name 指定容器名称,如果不加的话容器名称是随机生成的         启动与关闭

docker start myname
docker stop myname
#一条指令启动与关闭
docker run centos:7.6.1810 bash -c ls /         查察容器

docker ps -a         删除容器

docker rm myname

#删除所有容器
docker ps -aq | xargs docker stop
docker ps -aq | xargs docker rm         容器的进入

docker exec -it 容器 ID/名称 /bash
#其中:
#-i 选项表示让容器的输入保持打开;
#-t 选项表示让 Docker 分配一个伪终端
#exit 退出容器
#pwd 显示当前位置         在容器里传输文件

#docker cp 要放的文件 容器名字:/存放位置
docker cp nginx-latest.tar 容器名:/root/nginx-latest.tar
#从容器中拿出文件
docker cp 容器名:/root/nginx-latest.tar ./         容器的导入导出

#docker export 容器名 > 存放名
docker export confident_babbage > mynginx.tar
#把文件导成镜像
#cat 文件名| docker import – 生成的镜像名称:标签
cat mynginx.tar | docker import - mynginx:1.0 https://i-blog.csdnimg.cn/direct/8873e5ff560e471b922e7cb0f401c803.png
docker run -d -P --name nginx01 nginx:latest

#-P:随机端口映射
#-p:指定端口映射
#-d:放在后台启动
docker run -d -p 823:80 --name nginx02 nginx:latest https://i-blog.csdnimg.cn/direct/ebb2b08cee3a4c1e863fa5642a8f6418.png 
docker的特性

        1.下载镜像的时候,镜像在仓库里是压缩的,下载到容器里就是解压的

数据卷

        数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上, 对 数据卷的修改操作立刻可见,而且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用雷同于 Linux 下对目录举行的 mount 操作
        创建数据卷

docker run -d -v /data1 -v /data2 --name web nginx:latest

# -v 创建数据卷 https://i-blog.csdnimg.cn/direct/500857bd4e5a45219ae1c1acbb0929c9.png
#与宿主机目录挂载同步
docker run -d -v /var/www/:/data1 --name web-1 nginx:latest https://i-blog.csdnimg.cn/direct/1c00b23edf0240dda2b68ed61a152e0d.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Docker