美文网首页
docker 2 :定义分享自己的docker

docker 2 :定义分享自己的docker

作者: 初庆钊 | 来源:发表于2017-12-29 22:41 被阅读0次

    1. 根据镜像修改

    建立一个ubuntu 容器,修改

    docker container run -ti ubuntu bash
    

    自定义修改

    apt-get update
    apt-get install -y figlet
    figlet "hello docker"
    

    退出

    exit
    

    commit docker

    首先查看刚才修改的container id

    docker container ls -a
    docker container diff <container ID># 查看修改
    

    然后根据id提交为镜像(不必全部输入id,只要能与其他container 区分开)

    docker container commit CONTAINER_ID
    

    然后通过docker image ls 可以查看到刚才提交的镜像

    REPOSITORY TAG IMAGE ID CREATED SIZE
    <none> <none> a104f9ae9c37 46 seconds ago 160MB
    ubuntu latest 14f60031763d 4 days ago 120MB

    此时刚提交的镜像名字是none,通过下面命令为它命名。然后以后就可以通过 ourfiglet来召唤它了:)

    docker image tag <IMAGE_ID> ourfiglet
    

    2. 使用dockerfile 创建镜像

    Give a sysadmin an image and their app will be up-to-date for a day, give a sysadmin a Dockerfile and their app will always be up-to-date.
    给一个管理员一份镜像,他们的软件将暂时是最新的;给一个管理员一个Dockfile,他们的软件将永远是最新的。

    Dockerfile 规定如何构建镜像。下面通过一个Node.js程序说明
    建立一个index.js和Dockerfile文件,内容如下。
    index.js:

    var os = require("os");
    var hostname = os.hostname();
    console.log("hello from " + hostname);
    

    Dockerfile:

    FROM alpine
    RUN apk update && apk add nodejs
    COPY . /app  #从当前目录将index.js拷贝到container中
    WORKDIR /app #设定工作目录
    CMD ["node","index.js"] #= node index.js 当run container时运行。
    

    然后通过docker build命令建立镜像,-t 命名

    docker image build -t hello:v0.1 .
    docker build -t tutorial -f ./Dockerfile ./
    

    打开一个container,验证docker正常运行。

    docker container run hello:v0.1
    
    docker image pull alpine
    docker image inspect alpine
    docker image inspect --format "{{ json .RootFS.Layers }}" alpine
    docker image inspect --format "{{ json .RootFS.Layers }}" <image ID>
    

    相关文章

      网友评论

          本文标题:docker 2 :定义分享自己的docker

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