zoukankan      html  css  js  c++  java
  • Docker教程---基本操作

    一、docker的思想

      1、集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。

      2、标准化:

        1)、运输的标准化:Docker有一个码头,所有上传的集装箱都放在这个码头上,当谁需要某一个环境,就直接指派大海去搬运这个集装箱就可以了。

        2)、命令的标准化:Docker提供了一系列的命令,帮助我们去获取集装箱等操作。

        3)、提供了REST的API:衍生出了很多的图形化界面,Rancher。

      3、隔离性:

        Docker在运行集装箱的内容时,会在Linxu内核中,单独的开辟一片空间,这片空间不会影响到其他程序。

    二、组成

      注册中心:超级码头,上面放的就是集装箱

      镜像:集装箱

      容器:运行起来的镜像

    三、Docker的基本操作

      准备工作:

    systemctl disable firewalld
    systemctl stop firewalld
    setenforce 0

      1、安装docker

        下载关于Docker的依赖环境

    yum -y install yum-utils device-mapper-persisten-data lvm2

        设置一下下载Docker的镜像源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

        安装docker

    yum makacache fast
    yum -y install docker-ce

        启动,并设置为开机自动启动,测试

    systemctl start docker                  启动docker
    systemctl enable docker                 设置开机自启
    docker run hello-world 测试

    四、docker的中央仓库

      1、Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。

        https://hub.docker.com/

      2、国内的镜像网站:网易蜂巢,daoCloud

        http://c.163yun.com/hub#/home

        http://hub.daocloud.io/  (推荐使用)

      3、在公司内部会采用私服的方式拉去镜像(添加配置)  

    需要在 /etc/docker/daemon.json,没有则添加此文件
    {
          "registry-mirrors": ["https://registry.docker-cn.com"],
          "insecure-registries":["ip:port"]       
    }
    重启两个服务
    systemctl daemon-reload
    systemctl restart docker

     五、镜像的操作

      拉取镜像到本地

    docker pull 镜像名称[:tag]
    举个例子
    docker pull daocloud.io/library/tomcat:8.5.15-jre8

      镜像命令

    docker images                                         查看本地所有的镜像
    docker rmi b8dfe9ade316 删除本地镜像,本地镜像必须处于停止状态
    docker save -o ./tomcat.image b8dfe9ade316 导出镜像到本地
    docker load -i tomcat.image 导入本地镜像
    docker tag b8dfe9ade316 tomcat:8.5 修改名字

     六、容器的操作  

    docker run 镜像标识|镜像名称[:tag]                                           运行容器,简单操作
    docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]

    -d后台运行容器,
    -p宿主机端口:容器端口,为了映射当前linux的端口和容器端口
    --name 容器名称:指定容器的名称
    举例:
    docker run -d -p 8080:8080 --name tomcat b8dfe9ade316

       查看容器

    docker ps [-qa]
    -a:查看全部容器,包括没有运行的
    -q:只查看容器的标识

       查看容器的日志

    docker logs -f 49fc6dffb6df

      进入容器内部

    docker exec -it 容器id bash
    docker exec -it 49fc6dffb6df /bin/bash 举个例子

       删除容器(删除容器前。需要先停止容器)

    docker stop 容器id                     停止指定容器
    docker stop $(docker ps -qa)          停止全部容器
    docker rm 容器id                       删除指定容器
    docker rm $(docker ps -qa)            删除全部容器

     

       启动容器

    docker start 容器id

     七、Docker的应用

    docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 daocloud.io/library/mysql:5.7.4   运行一个容器,必须指定root初始密码
    docker cp 文件名 容器id:容器内部路径 复制宿主机文件至容器里面
    docker cp Discuz_X3.2_SC_UTF8.zip 9484402b4b7c:/usr/local/ 举个例子

       具体应用例子见下一篇博客

    八、数据卷

      数据卷:将宿主机的一个目录映射到容器的 一个目录中。

      可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

    docker volume create tomcat                                     创建数据卷,数据卷默认存放位置:/var/lib/docker/volumes
    docker volume inspect tomcat 查看单个数据卷
    docker volume ls 查看所有数据卷
    docker volume rm tomcat 删除数据卷
    docker run -v shujujuan:/usr/local/ 9484402b4b7c 应用数据卷,在创建容器的时候设置映射,没有shujujuan则docker自动创建
    docker run -v/opt/volume_tomcat:/usr/local/ 9484402b4b7c 指定数据卷存放位置

     九、Docker自定义镜像

      1、准备一个Dockerfile文件

    vim Dockerfile
    from php:7.2-apache copy wordpress /var/www/html

    参数:
    from:指定当前自定义镜像依赖的环境
    copy:将相对路径下的内容复制到自定义镜像中
    workdir:声明镜像的默认工作目录
    cmd:需要执行的命令(在workdir下执行的,cmd可以写多的,只以最后一个为准)

      2、准备好项目

       3、通过Dockerfile的命令制作镜像

    docker build -t ssm-wordpress:1.0.0 .                      在当前目录执行

       4、依赖自定义镜像启动一个容器

    docker run -d -p 81:80 --name custom-ssm-wordpress 4100c40cae59

      5、浏览器查看

  • 相关阅读:
    SVN中Revert changes from this revision 跟Revert to this revision
    bootstrap中如何使input中的小图标获得点击事件
    基于Bootstrap使用jQuery实现输入框组input-group的添加与删除-改进版
    MVC4 Controller 与 WebApi 的 Session 传值问
    MVC Razor与javascript混编(js中嵌入razor)
    Asp.net mvc怎么在razor里写js代码
    MVC后台数据赋值给前端JS对象
    ASP.NET MVC自定义验证Authorize Attribute(包含cookie helper)
    ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存
    【记录】【solr】solr7.2.1原子更新
  • 原文地址:https://www.cnblogs.com/aqicheng/p/13426775.html
Copyright © 2011-2022 走看看