美文网首页
初次使用docker

初次使用docker

作者: 灬劣徒 | 来源:发表于2019-11-19 15:18 被阅读0次
    2cf5e0fe9925bc31137974de55df8db1cb13704b.jpg
    • 图中给出的信息
      1.海:宿主机
      2.集装箱:docker容器
      3.鲸鱼+集装箱:docker技术

    docker下载地址

    什么是docker

    docker是一个开源的应用容器引擎,基于GO语言并遵从Apache2.0协议开源。
    docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任意流行的Linux机器上,也可以实现虚拟化。

    安装步骤

    1.卸载virtualbox,顺便把之前的vagrant也卸载掉
    由于docker是运行在linux系统上的,所以要想在windows上运行docker需要借助虚拟机。老的docker Toolbox使用Oracle VM VirtualBox 来运行一个简化的linux环境,而目前的docker CE for windows使用的是Hyper-v(从win8开始)虚拟机组件

    2.将电脑升级到window10企业版或者专业版

    3.启用Hyper-v虚拟机组件
    控制面板 -> 程序 -> 开启\关闭功能 ->Hyper-v,全部选中,重启电脑

    4.执行docker安装程序
    在cmd.exe中运行命令docker -v查看docker是否安装成功。
    注:如安装完成启动后无法使用docker命令,很大原因是本地的Hyper-v未启动,Hyper-v需要足够的内存来进行启动,手动调整内存大小。(反正洒家是没遇到过)

    搭建本机环境

    1.docker pull nginx:1.10
    镜像名称的获取方式

    2.新建nginx文件夹、php文件夹,这里我们有一个自己配置的dockerfile文件。进入这个文件夹,运行docker build -t [大版本号/REPOSITORY] : [小版本号/IMAGE] .(注意最后有个点,代表使用当前路径的dockerfile文件构建,里面就是需要安装的一些的扩展)来生成一个自己的镜像
    注:有时候命令大版本号和小版本号会失败,都是none,可以docker tag [image ID] [name]:[版本]

    3.生成nginx容器和php容器
    ①docker run -idt -p 9000:9000 -v /D/MyWeb:/var/www/html --name ps_php(容器名称) php:5.6(根据哪个
    镜像生成的,相当于js类)

    image.png

    ②docker run -d -p 80:80 -v /D/MyWeb:/var/www/html -v /D/nginx:/etc/nginx/conf.d --link ps_php(关联php的容器):php(这里一定要是php,否则会出错) --name ps_nginx nginx:1.10


    image.png

    4.在nginx中配置项目文件,在HOST文件中配置域名

    5.重启nginx容器

    docker 常用命令

    • docker pull nginx:1.11 #安装镜像 1.1为想安装nginx的版本,如果不加则为最新的版本。如下图会提示使用最后一个tag
    • docker images 查看镜像列表
    • docker ps -a 查看启动的容器
    • docker rm [容器ID] 删除容器
    • docker rmi [镜像ID] 删除镜像
    • docker start [容器ID] 启动容器
    • docker stop [容器ID] 停止容器(删除容器之前要先停止)
    • docker restart [容器ID] 重启容器
    • docker inspect [容器ID] 查看容器详细信息
    • docker logs [容器ID] 查看容器日志

    镜像、容器、仓库

    var  p1 = new Person();
    

    即:p1是容器、Person是镜像。至于仓库嘛 就相当于github的代码仓库,github是存代码的仓库,相应的docker仓库就是存放镜像的。

    image.png

    上图分了三个块:

    • client(客户端、命令终端)
    • DOCKER_HOST (docer daemon)
    • Resistry (镜像仓库)
      从左往右看,Client中执行了几个命令,这些命令都于docker daemon(docker的守护进程)有交互,然后docker daemon会根据相应命令做对应的动作。
      1.docker build:表示创建了一个镜像,这是一条虚线,虚线从开始到结束指向了中间的images框里。
      2.docker pull: 表示从仓库中拉取image,就像githup里pull代码一样。docker daemon接受到pull指令,从Registry(远程镜像仓库)里找带对应镜像(这里是nginx)然后拉到本地的images中。
      3.docker run :向daemon发出运行指令,daemon收到指令后去本地的images中找对应镜像。如果能找到就会使用该镜像生成一个容器,如果没找到则会默认执行docker pull从仓库里下载,然后再生成容器,如果容器中运行着我们的代码,那么当容器运行后代码也跟着run起来了

    注:

    • 有时重启nginx容器,报错:Cannot link to a non running container;解决方法是先重启PHP,然后才能重启nginx
    • 给容器中的host文件添加多个域名


      image.png

    相关文章

      网友评论

          本文标题:初次使用docker

          本文链接:https://www.haomeiwen.com/subject/kjlwictx.html