• docker(一) 安装与创建容器


    一.docker的安装

    阿里镜像源

    常用的开发的docker,公司一般有自己的yum

    CentOS 7(使用 yum 进行安装

    # 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
    
    # 注意:
    # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
    # vim /etc/yum.repos.d/docker-ce.repo
    #   将[docker-ce-test]下方的enabled=0修改为enabled=1
    #
    # 安装指定版本的Docker-CE:
    # Step 1: 查找Docker-CE的版本:
    # yum list docker-ce.x86_64 --showduplicates | sort -r
    #   Loading mirror speeds from cached hostfile
    #   Loaded plugins: branch, fastestmirror, langpacks
    #   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
    #   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
    #   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
    #   Available Packages
    # Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
    # sudo yum -y install docker-ce-[VERSION]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    安装校验

    root@iZbp12adskpuoxodbkqzjfZ:$ docker version
    Client:
     Version:      17.03.0-ce
     API version:  1.26
     Go version:   go1.7.5
     Git commit:   3a232c8
     Built:        Tue Feb 28 07:52:04 2017
     OS/Arch:      linux/amd64
    
    Server:
     Version:      17.03.0-ce
     API version:  1.26 (minimum version 1.12)
     Go version:   go1.7.5
     Git commit:   3a232c8
     Built:        Tue Feb 28 07:52:04 2017
     OS/Arch:      linux/amd64
     Experimental: false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    核心组件
    1.镜像:容器创建出来的对象

    小例子:你装了一个软件放在c盘就是镜像,当你启动了跑起来了的话他就叫做容器。

    2.容器:一个镜像可以启动很多个容器

    3.库:保存镜像的地方,就像我们下载engix,tomcat,或者其他的容器的时候,都需要先去把镜像给下载下来,那么下载镜像的时候从哪里下载就是从我们的库里面去下载,其实就是我们的hub.docker.web这个网站去下载,当我们镜像下载下来了之后我们的虚拟机里面就有了这个镜像了,那么下次启动容器的时候就不用再去下载这个镜像了

    二.docker的操作

    2.1查看容器

    docker ps 查看当前正在运行的容器在这里插入图片描述

    2.2 查看所有容器

    docker ps -a
    查看所有容器,在运行和不在运行的都可以查看到
    在这里插入图片描述

    2.2.1容器的参数含义

    在这里插入图片描述

    1. CONTAINER ID
    
       CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数,在不会混淆的情况下可以只采用id的前几位进行标识一个容器。
    
    2. IMAGE
    
       IMAGE表示创建容器时使用的镜像。 
    
    3. COMMAND
    
       COMMAND表示容器最后运行的命令。
    
    4. CREATED
    
       创建容器的时间。
    
    5. STATUS
    
       容器的状态,这里可能显示一个容器启动时间,也能显示容器关闭时间。具体显示那个要看容器当前的状态。  
    
    6. PORTS
    
       容器对外开放的端口。
    
    7. NAMES
    
       容器的名字,如果不设置,会有一个默认的名字。  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    2.3 查看最新创建的容器

    使用docker ps -l可以查看最近创建的容器

    docker ps -l

    在这里插入图片描述

    2.4查看最新创建的n个容器

    docker ps -n=xxx
    n=2 查看最新创建的2个容器
    n=xxx 查看最新创建的xxx个容器

    在这里插入图片描述

    2.3 创建容器

    创建容器整体上来说有两种不同的方式:

    1.先创建,再启动
    2.可以连创建带启动一步到位

    无论是那种方式,流程都是相似的,当执行一个创建命令之后,docker首先会去本地路径下查找是否有相应的镜像,如果没有,就去docker hub上搜索,如果搜索到了,则下载下来,然后利用该镜像创建一个容器并启动

    需要注意的是:
    容器的文件系统是在只读的镜像文件上添加一层可读写的文件层,这样可以使在不改变镜像的情况下,只记录改变的数据

    2.3.1 先创建容器再启动容器

    docker create
    这个命令创建出来的容器处于停止状态,并没有运行

    2.3.1.1 不指定name创建

    例如要创建一个nginx容器,创建命令如下:

    docker create nginx
    创建成功后,可以查看容器是否创建成功:
    在这里插入图片描述
    注意:此时创建的容器并未运行,处于停止状态,容器的name是随机生成的,开发者也可以在创建容器时指定name,如下:

    2.3.1.2 指定name

    docker create --name=nginx nginx
    实际上就是设置一下他的name属性而已并没有什么不同

    在这里插入图片描述
    注意:

    1.此时的name属性就不是随机生成的,而是用户指定的name。
    2.这种方式只是单纯的创建了一个用户,并未启动

    2.3.2 一步创建+启动容器

    如果开发者需要既创建又启动容器,则可以使用

    docker run 命令

    可以启动两种不同模式的容器:
    1.后台型容器:后台型容器就是一个在后台运行的容器,默默的在后台执行计算就行了,不需要和开发者进行交互.
    2.交互型容器:接收开发者的输入进行处理给出反馈

    注意:对于开发者而言,大部分情况下创建的都是后台型容器,不过在很多时候,即使是后台型容器也不可避免的需要进行交互

    2.3.2.1 后台型容器

    后台型容器以nginx为例,一般nginx在后台运行即可

    docker run --name houtai -d -p 8080:80 nginx
    –name含义和上文一样,表示创建的容器的名字
    -d表示容器在后台运行
    -p表示将容器的80端口映射到宿主机的8080端口

    在这里插入图片描述
    这种创建方法:
    1.首先依旧是检查本地有无相应的容器,有直接启动
    2.没有就去docker hub查找,查到到下载,然后运行,并且生成了一个容器的id
    3.运行成功后我们在浏览器中输入http://localhost:8080就能看到nginx的默认界面

    在这里插入图片描述

    2.3.2.2 交互型容器

    ubuntu容器是我们常见的交互形容器交互型容器
    交互型容器创建方式如下:

    docker run --name jiaohuubuntu -it ubuntu /bin/bash
    –name含义和上文一样,表示创建的容器的名字
    -it参数,i表示开发容器的标准输入(STDIN),t则表示告诉docker,为容器创建一个命令行终端

    注意:
    该命令执行完后,会打开一个输入终端
    退出终端,只需要输入exit命令

    在这里插入图片描述

  • 相关阅读:
    分享几种 Java8 中通过 Stream 对列表进行去重的方法
    10.26 来 CNCC 2023 T16 展位,TDengine 精美周边等你来领!
    【计算机网络】网络编程接口 Socket API 解读(3)
    【CVPR 2022】半监督目标检测:Dense Learning based Semi-Supervised Object Detection
    配电室管理系统:现代化电力分配的重要工具
    振弦采集模块主动上传测量数据( UART)
    iOS加固保护技术:保护你的iOS应用免受恶意篡改
    10分钟设置免费海外远程桌面
    vue如何解决跨域?
    【echarts】15、echarts+vue2 -雷达图
  • 原文地址:https://blog.csdn.net/weixin_43189971/article/details/126078439