• 1. Docker快速入门(仓库,镜像,容器)


    参考阿里云文档:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY

    参考菜鸟教程文档:https://m.runoob.com/docker/centos-docker-install.html

    Docker的目标之一就是缩短代码从开发测试到部署、上线运行的周期通俗一点说,Docker就像一个盒子,里面可以装很多物件,如果需要这些物件的可以直接将该盒子拿走,而需要该盒子中一件件的取。它的优点就在于:1.实现虚拟化,更好的资源隔离和共享。2.一次编写,四处运行

    容器与虚拟机比较

    Docker安装与基本命令

      安装:yum install docker

      查看版本:docker -v

      启动:systemctl start docker

      停止:systemctl stop docker

      重启:systemctl restart docker

      查看状态:systemctl status docker

      开机启动:systemctl enable docker

      查看docker概要信息:docker info

      查看docker帮助文档:docker –help

    卸载docker

    1. 卸载 yum remove docker      docker-common     docker-selinux      docker-engine
    2. 删除docker 镜像     rm -rf /var/lib/docker 
    3. 搜索,什么都没有就卸载干净了  yum list installed|grep docker 

    Docker镜像操作

      3.1 搜索镜像:docker search 镜像名称     例如:docker search centos   docker search mysql     docker search  tomcat

      3.2 下载镜像:docker pull 镜像名称         因为docker镜像仓库在国外下载起来巨慢,所以我们需要使用国内的镜像地址。

    // 1. 编辑该文件,如果没有就先创建
    vim /etc/docker/daemon.json
    // 2. 加入下面配置
    {
      "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    // 3. 重启docker

      下载zookeeper:       docker pull zookeeper

      3.3 查看本地所有镜像:docker images

      

        * REPOSITORY:镜像所在的仓库名称

      * TAG:镜像标签

      * IMAGE ID:镜像ID

      * CREATED:镜像的创建日期(不是获取该镜像的日期)

      * SIZE:镜像大小

      * 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

      3.4 删除  删除指定镜像:  docker rmi -f 镜像id       删除所有镜像: docker rmi -f `docker images -q`

    Docker容器操作

    创建容器常用的参数说明:

           4.1创建容器命令:docker run

       -i:表示运行容器       -t:表示容器启动后会进入其命令行      加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

           --name :为创建的容器命名               

       -v:表示目录映射关系(数据需要持久化的最好都映射下,容器被删掉之后下次新建的映射目录相同的话,数据可以直接使用;比如mysql。) 前者是宿主机目录,后者是映射到容器上的目录, 可以使用多个-v做多个目录或文件映射。

           -d:在run后面加上-d参数这样创建容器后不会自动登录容器       

       -p:表示端口映射;前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

      4.2查看容器命令:

      查看正在运行的容器:       docker ps

      查看历史运行过的容器 :  docker ps -a

      查看最后一次运行的容器:docker ps -l

      查看停止的容器:         docker ps -f status=exited

      进入运行的容器中:     docker exec -it 容器id/容器名称 /bin/bash

      4.3创建容器的两种方式:

    // 查看所有镜像
    [root@VM_0_3_centos /]# docker images
    REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
    docker.io/centos      latest              75835a67d134        3 days ago          200 MB
    docker.io/nginx       latest              be1f31be9a87        10 days ago         109 MB
    docker.io/redis       latest              0a153379a539        10 days ago         83.4 MB
    docker.io/solr        latest              45749c8baa2a        2 weeks ago         834 MB
    docker.io/zookeeper   latest              89f7884dcc4e        3 weeks ago         148 MB
    docker.io/tomcat      latest              41a54fe1f79d        4 weeks ago         463 MB
    docker.io/mysql       latest              6a834f03bd02        5 weeks ago         484 MB
    [root@VM_0_3_centos /]#
    /**
     * 创建一个交互式容器(创建完成直接启动并进入容器,exit退出会自动关闭)
     *     容器名称不能重复   
     *     命名为mycentos,来源于centos镜像,版本为latest     /bin/bash是命令解析器(加了就能直接进入容器命令行)
     */
    [root@VM_0_3_centos /]# docker run -it --name=mycentos centos:latest /bin/bash
    [root@750f40204378 /]# // 看左边的状态,会发现现在已经进入了容器了,而不是虚拟机了。
    [root@750f40204378 /]# ls
    anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    [root@750f40204378 ~]#// 退出
    [root@750f40204378 ~]# exit
    [root@VM_0_3_centos /]# // 这时候docker ps 发现容器已经停止了。
    /**
     * 创建一个守护式容器(创建完成启动容器但不会进入容器,exit退出容器也不会关闭)
     *     因为不需要进入容器, 所以不需要加 /bin/bas 是命令解析器。
     */
    [root@VM_0_3_centos ~]# docker run -id --name=mycentos2 centos:latest
    35d806b3669df020a3027445047b98262521c7b4c0bcb246b1af8cd904e2296e
    [root@VM_0_3_centos ~]#
    [root@VM_0_3_centos ~]# docker ps -a  // 查看历史状态发现mycentos已经停止, mycentos2还在运行。
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
    35d806b3669d        centos:latest       "/bin/bash"         27 minutes ago      Up 27 minutes                                    mycentos2
    750f40204378        centos:latest       "/bin/bash"         About an hour ago   Exited (137) 5 seconds ago                       mycentos

        进入运行中的容器 docker exec -it 容器名称 /bin/bash         查看容器ip(只能查看运行中的容器)  docker inspect 容器名

      启动容器: docker start 容器名称           关闭容器: docker stop 容器名称           删除停止的容器:docker rm 容器名称

    文件拷贝与目录挂载

    /**
     * 将宿主机文件复制到容器中:
     *    docker cp  目标目录  容器名: 指定目录
     */ 
    [root@VM_0_3_centos ~]# docker cp /usr/local/wulei/myfile mycentos:/usr/local
    [root@VM_0_3_centos ~]# docker exec -it mycentos /bin/bash
    [root@750f40204378 /]# cd /usr/local
    [root@750f40204378 local]# ll
    total 44
    drwxr-xr-x 2 root root 4096 Apr 11  2018 bin
    drwxr-xr-x 2 root root 4096 Apr 11  2018 etc
    drwxr-xr-x 2 root root 4096 Apr 11  2018 games
    drwxr-xr-x 2 root root 4096 Apr 11  2018 include
    drwxr-xr-x 2 root root 4096 Apr 11  2018 lib
    drwxr-xr-x 2 root root 4096 Apr 11  2018 lib64
    drwxr-xr-x 2 root root 4096 Apr 11  2018 libexec
    -rw-r--r-- 1 root root    4 Oct 14 03:35 myfile
    drwxr-xr-x 2 root root 4096 Apr 11  2018 sbin
    drwxr-xr-x 5 root root 4096 Oct  6 19:14 share
    drwxr-xr-x 2 root root 4096 Apr 11  2018 src
    /**
     * 把容器文件copy到宿主机中
     * docker cp 容器名称:容器目录 需要拷贝的文件或目录
     */
     /**
      * 目录挂载(文件映射)
      * 将宿主机的indexhtml文件映射到指定目录,并命名为haha
      */
    docker run -id --name=mycentos1 -v /usr/local/wulei/indexhtml:/usr/local/haha  centos:latest
     /**
      * 目录挂载(文件夹映射  需要通过--privileged=true加持权限)
      * 将宿主机的wulei文件夹映射到指定目录,并命名为ok
      */
    docker run -id --name=mycentos2 -v /usr/local/wulei:/usr/local/ok --privileged=true centos:latest
  • 相关阅读:
    React 创建一个自动跟新时间的组件
    React 组件传值 父传递儿子
    React 以两种形式去创建组件 类或者函数(二)
    React 语法基础(一)之表达式和jsx
    ref的使用
    使用scale等比例缩放图片
    Vue动态加载图片图片不显示
    div里面的元素在【垂直 方向】上水平分布 使用calc()函数动态计算
    控制label标签的宽度,不让它换行 label标签左对齐
    表单验证
  • 原文地址:https://www.cnblogs.com/wlwl/p/9783069.html
Copyright © 2020-2023  润新知