• Docker基础


    1.Docker介绍

    Docker的英文翻译是“搬运工”的意思,他搬运的东西就是我们常说的集装箱 Container,Container 里面装的是任意类型的 App,我们的开发人员可以通过 Docker 将App 变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。

    Docker Engine是一个 C/S架构的应用程序,主要包含下面几个组件:

    • 常驻后台进程 Dockerd
    • 一个用来和 Dockerd 交互的 REST API Server
    • 命令行 CLI 接口,通过和 REST API 进行交互(我们经常使用的 docker 命令)

    架构图

     

    2.安装Docker

    去官方有详细安装办法

    3.基础命令

    4.Dockerfile 定制镜像

    5.Docker 私有仓库 

    首先DockerHub的使用 

    官网 https://hub.docker.com/  注册账号  

    命令行登录 :docker login  输入UserNamePassWord    显示Login Succeeded  登录成功

    搜索镜像命令:docker search centos  搜索centos镜像

    将本地镜像推送到dockerHub上面

    • 推送前镜像名字必须是 userName/nginx:v3       修改镜像名称命令:docker  tag 原镜像名称:tag 目标镜像名称:tag 例如 docker  tag nginx:v3 anker/test-nginx:v3
    • 推送上去 docker push anker/test-nginx:v3
    • 速度太慢 使用镜像加速器 地址 http://docker-cn.com/  也可以配置阿里云加速器  配置完下载镜像就比较快了   记得重新启动

     创建本地仓库只供自己使用(官方 Docker Registry)

    • docker run --name myregistry -d -p 5000:5000 registry:2.6.2  本地没有就会去网上拉  运行起来私有仓库就创建好了
    • 将nginx:v3 push到私有仓库  
    • 修改tag名字 :docker tag nginx:v3 127.0.0.1:5000/nginx:v3 
    • push到私有仓库:docker push 127.0.0.1:5000/nginx:v3
    • 本地地址 可以查看私有仓库 镜像情况 127.0.0.1:5000:v2/_catalog     显示{"repositories":["nginx"]} 上传成功
    • 删除本地 镜像:docker rmi -f 127.0.0.1:5000/nginx:v3    -f强制删除
    • 拉去私有仓库镜像:docker pull 127.0.0.1:5000/nginx:v3
    • push到仓库里面的路径会默认放到 /var/lib/registry 
    • 使用数据挂在-v参数  docker run --name myregistry -d -p 5000:5000 -v /Users/ych/devs/mynginx:/var/lib/registry registry:2.6.2  如果不挂在 registry仓库移除了 仓库里面东西都被删掉了

      6. 数据共享与持久化

    Docker容器被删除后默认会将容器里面的所有文件都给删除掉的,但是有的时候我们有数据共享或者持久化的需求,比如数据库,希望下一次启动容器的时候数据依然保留,这就需要用到Docker中的数据卷功能了,另外一个就是挂载宿主机目录到容器中去,这个无论是在开发阶段还是生产环境都非常有用的一个功能。

    docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7    

    docker volume ls 查看数据卷   docker inspect  mysql01 查看信息  docker volume inspext  VOLUME NAME

    进入容器里面 docker exec -it mysql01 /bin/bash  里面  创建一个docker库  退出来 exit   docker rm -f mysql01  

    第三个是mysql默认的数据卷  里面有刚创建的docker库  就是 使用-v 参数

    docker run -d --name mysql 100 -v mysql:/val/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7    

    删除全部的数据卷 docker volume prune  

    7Docker网络模式

    link模式

    bridge模式

    docker network create -d bridge deme   创建一个bridge模式的demo

    docker network ls    查看

    docker network inspect demo   

    用bridge创建两个容器 

    docker run --name test 1--network demo mysql

    docker run --name test2 --network demo mysql

    docker exec -it test1 bash 

    ping test1  可以通

    建议使用compose

  • 相关阅读:
    8.8全民健身日,扒一扒音视频互动与健身的那些事儿
    游戏视频开发平台的特点
    音视频开发技术之自主集成第三方编解码器
    视频开发之外部音视频输入
    视频开发技术之文件传输限速
    视频开发技术之文件传输
    ubuntu16.04LTS+pycharm kuaijiefangshi
    install cuda
    Tensorflow实现MNIST
    TensorFlow导入mnist数据集
  • 原文地址:https://www.cnblogs.com/AnkerZhang/p/9474391.html
Copyright © 2020-2023  润新知