zoukankan      html  css  js  c++  java
  • docker学习

    docker 学习

    • image:核心,

      • docker build 生成可执行程序 就是 image
      • docker pull 从 dock hub 拉取 image(也可以说是从 Registry 中拉取)
    • dockfile:可以看作具体image 的源代码,则 docker 本身就可以看作编译器

    • container: 正在运行的 image,不同 container 间是相互隔离的

      • docker run 运行可执行程序

    命令

    获取镜像

    • docker search 查找镜像
    • docker pull <domain>/<namespace>/<repo>:tag

    查看镜像信息

    • docker inspect <image_id>

    删除镜像

    • docker rmi :

    删除容器

    • docker rm

    查看容器

    • docker ps -a

    创建镜像

    • docker commit <options> <container-id> <repository:tag>
      • -a --author:作者信息
      • -m --meassage:提交消息
      • -p --pause=true:提交时暂停容器运行

    迁出镜像

    • docker save -o .tar :
      • image 可以为标签(tag)或者 ID

    载入镜像

    • docker load --input .tar 或 docker load .tar

    上传镜像

    • docker push / /:

    容器常用操作

    创建容器

    • docker create -ti 创建容器

      • docker start 启动创建的容器
    • docker run 创建并启动容器,若本地有镜像则利用本地的镜像创建容器

    • 原理:

      • 检查本地是否存在镜像,若不存在则从公有仓库下载
      • 利用本地镜像创建并启动一个容器
      • 分配一个文件系统,并在只读的镜像层外才挂载一层可读写层
      • 从宿主机配置的网桥接口桥接一个虚拟接口到容器中去
      • 从地址池配置一个 IP 地址给容器
      • 执行用户指定的用户程序
      • 执行完毕后容器被终止
    • docker run -it ubuntu /bin/bash

      • -i :让容器的标准输入保持打开
      • -t :让 docker 分配一个伪终端,并绑定到容器的标准输入上
      • exit :在容器中执行该指令则退出容器,退出后容器自动进入终止态
    • docker run --name demo -d ubuntu,docker 容器以守护态在后台运行

      • -d 后跟 image 的名字
      • --name 后跟启动的 container 的名字,若不加该参数,则以会自动生成名字

    终止容器

    • docker stop <container_id>,当容器中的应用终止时,容器会自动终止
      • 查看终止的容器:docker ps -a
      • 查看运行的容器:docker ps
      • 重新启动容器:docker start <container_id>

    进入容器

    • 启动时进入容器:docker run -it ubuntu -d /bin/bash
    • 进入正在运行的容器:docker exec -it container_id bash

    删除容器

    • docker rm container_id

    导出和导入容器

    • docker export <container_id>

      • eg: docker export test_id > test.tar
    • docker import

    docker 网络访问

    1. 默认情况下,容器能访问外部网络,但是外部网络不能访问容器。

      • 使用 docker exec -it container_id bash 进入容器
      • 进入容器后,使用 iptables -t nat -L -n ,可以查看容器内部网络状态
    2. 通过将容器的端口映射到主机的端口,即能使用外部访问容器

      • 当容器运行一些网络应用时,要让外部访问这些应用,需要在创建containter时,使用-P或-p 指定端口映射-p 即为为外部访问提供的端口号
      • eg: docker run --name docker_mysql -p 12345:3306 -e MYSQL_PASSWORK=<passwd> -d myslq:5.6.35
        • -p,即将容器内部的 3306 映射为 12345 供外部访问
        • -d,以守护进程启动
      • 映射到指定地址... -p 127.0.0.1:12345:3306....
      • 映射到指定地址的任意端口:...-p 127.0.0.1::3306
      • 查看内部映射端口配置:docker port image_name port

    容器间相互通信

    1. 方法 1:通过映射宿主机的端口实现容器互联
    2. 方法 2:容器的连接(link)除了端口映射外,也是另一种可以与容器中的应用进行交互的方式
    • (方法 2)示例

      • 第一步,创建一个数据库容器(mysqldb)
      docker run --name mysqldb -p 1234:3306 -e MYSQL_ROOT_PASSWORD=<passwd> -d mysql:5.6.35
      
      • 第二步,创建一个 Web 容器(tomcatApp),并与数据库建立连接,使用--link,tomcat 容器创建好后,对外通过 MySQL 进行通信
      docker run  --name tomcatApp --link mysqldb:MySQL -d tomcat
      
  • 相关阅读:
    Vue-router的实现原理
    get请求被浏览器跨域的同源策略请求机制拦截,但是get请求是否请求到了服务器呢
    合并两个有序链表
    JS实现链式调用 a().b().c()
    CSS知识点总结
    BK-信息查找、摘取
    radar图生成用户guideline
    【转】 mybatis 详解(七)------一对一、一对多、多对多
    【转】 mybatis 详解(六)------通过mapper接口加载映射文件
    【转】 mybatis 详解(五)------动态SQL
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/14238888.html
Copyright © 2011-2022 走看看