zoukankan      html  css  js  c++  java
  • Docker 基础使用方法(三) Dockerfile基础和构建镜像

    前两章是基础,这一章,也差不多,因为这个东西本来就不复杂

    之前讲Docker有两种构建方式,一种是使用基础镜像运行,然后在commit,一种是使用Dockerfile

    第一种很简单,就是运行了镜像以后,比如:

    docker run -itd --name test ubuntu:latest /bin/bash

    使用这个命令进入镜像:

    docker exec -it test /bin/bash

    当然-it后面是使用的镜像的NAMES,也可以用ContainerID

    接下来就是执行自己的各种命令,什么apt-get install update了之类的,这个就不细讲了,反正就是自己定制完了,然后在执行:

    docker commit -a "onepoint onepoint@11.com" test myimages

    具体命令自己看help,test是容器的名称,也可以用container id替代,myimages意思就是最新提交的镜像了,如果有需要可以带上TAG,比如:

    docker commit -a "onepoint onepoint@11.com" test myimages:0.1

    跟着需求来,最后就到了Dockerfile了:

    我这有一个模板:

    FROM ubuntu:16.04
    
    MAINTAINER onepoint 'onepoint@ttt.com'
    
    
    # 更新源,安装ssh server
    RUN apt-get update && 
    apt-get install -y openssh-server vim git && 
    mkdir /var/run/sshd &&
    echo 'root:123qwe' | chpasswd  &&  
    sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 

    ADD ./miniconda3 /root/ #容器开发SSH 22端口
    EXPOSE 22

     我还没掌握Dockerfile的精髓,没时间深入研究,基础嘛~

     FROM 意思就是使用哪个镜像作为母本,当然也可以使用你自己编辑好的镜像,看需求

     RUN 就是执行后面的命令,&&的意思就是,执行上一条,执行下一条,换行符就不用说了,为了好看~

    因为docker有个layer的概念,所以如果能在一条命令里面执行多个操作,尽量去执行,要不然分好多层也浪费,虽然不影响使用.

    在一个ADD就是添加本地的文件到镜像里面,格式的话类似于cp,但是文件夹也不用带r

    接下来写好了Dockerfile就是开始构建了,可以先创建一个空文件夹,然后在把Dockerfile 挪到这里面,然后在这个空文件夹里面使用下面的命令:

    docker build -t IMAGENAME:TAG .

    如果没有语法错误,和拉不下来软件的情况,这样就坐等完事就可以,

    接下来打出来的镜像就参考之前的命令去查看并运行就可以了

    还有一个push的操作,可以push到镜像仓库:

    docker push IMAGENAME:TAG

    EXPOSE就是默认打开的端口,如果你看到这了,代表你需要打开一些端口,前文也说过运行的时候可以做端口映射,这个镜像里面带这个命令就相当与开一个默认端口,没做映射的,你可以通过:

    docker inspect -f '{{.NetworkSettings.IPAddress}}' test
    docker inspect -f '{{.NetworkSettings.Ports}}' test
    docker inspect  test

    上面那个是查看IP,下面那个是查看已开启的端口号以及映射关系,如果不带-f的话就是全量的,和其他命令一样,可以是NAMES也可以是ContainerID

    下一章是镜像的导入导入

  • 相关阅读:
    Linux2.6X内核中文件相关结构体总结
    Linux 内核文件系统与设备操作流程分析
    在linux下删除的共享文件怎么恢复
    fedora17的U盘安装和硬盘安装
    cakephp
    【25.00%】【vijos P1907】飞扬的小鸟
    【14.36%】【codeforces 614C】Peter and Snow Blower
    【14.67%】【codeforces 615D】Multipliers
    【records】10.24..10.30
    【非常高%】【codeforces 733A】Grasshopper And the String
  • 原文地址:https://www.cnblogs.com/dutu/p/8022721.html
Copyright © 2011-2022 走看看