一:docker安装

链接:(128条消息) Docker Desktop 安装使用教程_zyyn_未来可期的博客-CSDN博客_docker desktop

二:docker使用

1.docker和虚拟机的区别:

    1.docker启动非常快,但虚拟机很慢。

    2.docker开销小,即占用资源小,虚拟机开销大,即占用资源大。

    3.docker隔离没有虚拟机隔离的彻底。

    4.docker的安全性比不上虚拟机。

2.docker和虚拟机使用场景

    例1:开发将项目发给测试进行测试,此时用docker。

    例2:假设只有一块服务器,此时两人同时并行使用,可以用虚拟机进行隔离,隔离的彻底。

3. docker组成:镜像,容器,仓库

    1.镜像:就是一个文件。

    2.容器:通过一个类创建出一个对象;通过一个镜像创建出一个容器。

    3.仓库:可以看作一个代码控制中心用来保存镜像。

4.Docker:线程,镜像,容器

    1.线程(daemon守护进程):(Ubuntu)(Centos)

        启动docker线程:sudo service docker start

        查看docker的服务状态:sudo service docker status

        停止docker:sudo service docker stop

        重启docker:sudo service docker restart

        设置开机启动docker:sudo service enable docker

5.docker镜像

    镜像:镜像文件就是涵盖了我们所有的该项目所需要的软件,当我们把项目发给别人的时候,只需要把我们通过镜像创建一个容器,就把我们的环境同步了。

    1.查看镜像:sudo docker images:属性:1. 镜像我们的软件(REPOSITORY) 2. 版本(TAG) 3. 序列号(IMAGE ID) 4. 时间(CREATED) 5. 镜像大小(SIZE)。

    2.搜索镜像:sudo docker search + 镜像名  属性:1. 名字 2. 简介 3. stars(同github)4. 是否官方 5. 是否社区。

    3.下载镜像:docker pull + 镜像名:版本号  注:上hub.docker.com寻找版本号。

    4.删除镜像1:docker rmi + (镜像名:版本)或 镜像序列号。

    5.删除镜像2:docker rmi -f (强制删除)+ (镜像名:版本)或 镜像序列号。

    6.查看已有的镜像文件序列号:sudo docker images -q

    7.把查到的镜像文件按照序列号全部删除:docker rmi ·docker images -q·,··是tab上边的键。

6.docker容器

    容器:容器都是通过镜像实例化出来的对象。

    1.docker ps:查看容器,如果容器已经关闭,将查看不到。

    2.docker ps -a:查看历史容器。1. 容器的ID 2. 创建容器依赖的镜像名 3. 控制方式 4. 时间 5. 容器的状态 6.   7. 容器名字。

    3.docker run -it --name=name +centos:7 /bin/bash:通过centos7创建一个容器。

    4.docker run -id --name=n5 centos:7 /bin/bash:通过centos7创建一个容器。

    注意:3和4的区别:

        -it:一创建立马进入了容器,exit后立马关闭容器。

     -id:后台创建容器,创建后不进入,进入的话需要通过docker exec -it name /bin/bash命令进入容器,通过exit退出了之后,也不会自动关闭容器。

    5.exit:退出容器。

    6.docker start + 名字:启动某个容器 。

    7.docker stop + 名字:关闭某个容器。

    8.docker rm + 名字/序列号:删除某个容器,正在运行的容器不能删除。

    9.docker rm -f + 名字/序列号:-f:是参数,强制删除,正在运行的容器也可以删除。

   10.查看容器信息:docker inspect + 名字。

7.数据卷

    问题1:在docker中的数据删除了或者容器坏了,里边的数据还存在吗?

    问题2:容器可以和外部机器直接交换文件吗?

    问题3:容器之间怎么交互数据?

    答案:挂载数据卷。

    1.数据卷:在本机中创建一个目录,在容器中也创建一个目录,然后把这两个目录挂载起来,那么这个时候,本机的目录就叫做数据卷。

    2.数据卷的实现

        1.本机的目录下的数据会和容器的目录下的数据,同时改变,也就是当容器目录和数据卷的目录绑定后,对方的修改会立刻同步。

        注:一个数据卷可以同时被多个容器挂载。一个容器可以可挂载多个数据卷。

        2.数据卷的作用:1.容器数据持久化,2.外部机器和容器间的间接通讯,3.容器之间的数据交互。

        3.配置数据卷:启动容器时,使用-v参数设置数据卷:

            docker run -it --name=n4 -v 本机目录(文件):容器内目录(文件)+ 镜像

        4.创建数据卷容器:docker run -it --name=名字 -v /volumes + 镜像

    3.制作镜像:

        1.将容器打包成镜像:sudo docker commit + 容器名 + 镜像名字

        2.将镜像打包成压缩包:sudo docker save -o 压缩包name+要压缩的镜像

        3.将压缩包读取出来:sudo docker load -i 压缩包文件

8.Docker镜像原理:

    问题一:Docker镜像的本质是什么

        是一个分层的文件系统

    问题二:Docker镜像中的一个centos镜像只有200MB,为什么下载centos操作系统的ios是却又几个G?

        Centos的iso镜像文件包含bootfs和rootfs,而docker中的centos镜像复用了操作系统的bootfs,只有rootfs和其他镜像层需要下载

    问题三:Docker中的tomcat镜像500MB,而一个tomcat的安装包只有70MB

        由于docker中镜像是分层的,tomcat虽然只有70多MB,但是他需要依赖父镜像和基础镜像,所有的叠加起来就比较大了。

9.Docker镜像原理:

    1.Docker镜像是由特殊的文件系统叠加而成。

    2.最底层是bootfs,并且使用宿主机的bootfs。

    3.第二层是root文件系统,rootfs,被称为base images。

    4.然后再往上可以叠加其他的镜像文件。

    5.一个镜像可以放在另一个镜像上面,位于下面的镜像称为父镜像。

    6.当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。

10.linux常用命令:

    ls:打印当前目录。

    cd:进入某个文件夹

    cd ..:退出某个文件夹。

    cd + 路径:直接进入指定文件夹。

    touch +文件名:创建一个文件

    mkdir + 文件夹名:创建一个文件夹

    vi/vim +文件名:进入文件进行编辑

        vi有三个模式:

        i,a,o:都是写入,只是光标位置不同。

        :标识,w:写入,q:退出,!:强制。

    rm +文件名:删除文件。

    rm -f 文件名:强制删除文件。

    rmdir 文件夹名:删除文件夹。

    rm -rf 文件夹名:强制删除文件夹。

    mv 文件名 移动前的路径 移动后路径:移动文件

    cp 文件名  拷贝前路径 拷贝后路径:拷贝文件

    

注意:
    centos安装vim命令:yum -y install vim*,如果有类似黑窗口没有的命令,只需要搜索下载即可。
docker工作使用举例:
    注意:创建容器,进入容器后下载anaconda,配置环境,方法见网址: 【2022】Centos7.4安装anaconda3(anaconda2021.11)_游子身上汗的博客-CSDN博客_centos下安装anaconda3

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐