摘要:用法在當中只有最后一條生效,其他都不生效第一種寫法類似數(shù)組形式,推薦使用。第二章方法執(zhí)行命令啟動的進程,該進程的為執(zhí)行完這個的。命令覆蓋掉了中的命令,直接進入到了中。刪除鏡像前,先停止。
ENTRYPOINT用法
entrypoint在dockerfile當中只有最后一條生效,其他entrypoint都不生效
第一種寫法類似數(shù)組形式,推薦使用。使用這種方法啟動的進程的pid為1。
第二章方法執(zhí)行命令啟動的進程,該進程的pid為執(zhí)行完這個shell的pid。
CMD用法
第一種用法,也是數(shù)組格式。
第二種用法,為entrypoint指定參數(shù)。比如,entrypoint執(zhí)行命令 usrs/bin/Nginx,cmd可以提供參數(shù)如start,結合起來即為usrs/bin/nginx start.
第三種寫法,pid號也是shell執(zhí)行的pid號。是Linux下 /bin/sh -c 的用法。
構建鏡像需要基于一個基礎鏡像。下面基于centos7這個基礎鏡像構建一個鏡像。
[root@Optimus /]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE wordpress latest b027afd30886 33 hours ago 409.2 MB csphere/wordpress 4.2 6d90342cc99d 2 days ago 747.3 MB csphere/mysql 5.5 e147ac2a588e 6 days ago 752.7 MB csphere/php-fpm 5.4 1b08c94ce801 8 days ago 709.7 MB csphere/centos 7.1 fd1f7619e63e 9 days ago 613 MB centos centos7.1.1503 879c6d07c60e 7 weeks ago 212.1 MB [root@Optimus /]#
-----
使用cmd
創(chuàng)建dockerfile
[root@Optimus /]# vim Dockerfile FROM centos:centos7.1.1503 CMD ["/bin/echo", "This is test cmd"]
build的時候出錯,提示沒有權限
[root@Optimus /]# docker build -t csphere/cmd:0.1 . Error checking context is accessible: "no permission to read from "proc/sys/net/ipv4/route/flush"". Please check permissions and try again.
刪除Dockerfile
rm -rf 目錄名字 -r 就是向下遞歸,不管有多少級目錄,一并刪除 -f 就是直接強行刪除,不作任何提示的意思~ rm -rf Dockerfile
進入docker-training目錄下面,重新創(chuàng)建Dockerfile,構建鏡像
[root@Optimus docker-training]# docker build -t csphere/cmd:0.1 docker: "build" requires 1 argument. See "docker build --help". Usage: docker build [OPTIONS] PATH | URL | - Build a new image from the source code at PATH [root@Optimus docker-training]# docker build -t csphere/cmd:0.1 . Sending build context to Docker daemon 27.55 MB Sending build context to Docker daemon Step 0 : FROM centos:centos7.1.1503 ---> 879c6d07c60e Step 1 : CMD /bin/echo This is test cmd ---> Running in 3dce9e75bdc8 ---> f32bb73e8383 Removing intermediate container 3dce9e75bdc8 Successfully built f32bb73e8383 [root@Optimus docker-training]#
接下來可以通過csphere/cmd:0.1這個鏡像來啟動一個容器
docker run -it --rm --rm參數(shù)的意識是,只要容器一退出,則刪除容器 [root@Optimus docker-training]# docker run -it csphere/cmd:0.1 This is test cmd 可以看到,/bin/echo This is test cmd 這條命令成功執(zhí)行。
直接進入container里面,而不執(zhí)行echo指令,可以在docker run 后面直接加上/bin/bash命令,/bin/bash命令會覆蓋掉cmd后面的命令。
[root@Optimus docker-training]# docker run -it csphere/cmd:0.1 /bin/bash [root@cd32d71fb9c5 /]# /bin/bash 命令覆蓋掉了dockerfile中的cmd命令,直接進入到了container中。
---
使用entrypoint
[root@Optimus docker-training]# vim Dockerfile FROM centos:centos7.1.1503 ENTRYPOINT ["/bin/echo", "This is test entrypoint"] ~
構建鏡像
[root@Optimus docker-training]# docker build -t csphere/ent:0.1 . Sending build context to Docker daemon 27.55 MB Sending build context to Docker daemon Step 0 : FROM centos:centos7.1.1503 ---> 879c6d07c60e
直接在docker run 后面加參數(shù)/bin/bash,entrypoint會把/bin/bash當成一個echo的字符串參數(shù),不會進入到容器中。
[root@Optimus docker-training]# docker run -it csphere/ent:0.1 /bin/bash This is test entrypoint /bin/bash
如果想覆蓋dockerfile中entrypoint指令,可以在docker run命令中加--entrypoint參數(shù)來指定。
[root@Optimus docker-training]# docker run -it --entrypoint=/bin/bash csphere/ent:0.1 [root@bc7378b9ca83 /]# Step 1 : ENTRYPOINT /bin/echo This is test entrypoint ---> Running in 40b01fac38af ---> 9714a8b5bb85 Removing intermediate container 40b01fac38af Successfully built 9714a8b5bb85 [root@Optimus docker-training]#
啟動容器
[root@Optimus docker-training]# docker run -it csphere/ent:0.1 This is test entrypoint
----
其他
刪除鏡像
docker rmi 鏡像 如果有啟動中的容器正在使用該鏡像,不能刪除該鏡像。刪除鏡像前,先停止container。-f 參數(shù)強制刪除鏡像。
如果對文件有修改,可以使用一下命令,更新git 倉庫
git add * git commit -M "" git push origin master 提交到自己的倉庫中
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27106.html
摘要:本文最早發(fā)表于本人博客快速入門指引是什么是公司開源的一個基于技術之上構建的容器引擎,基于語言并遵從協(xié)議開源。指令用于設置用戶或來運行生成的鏡像和執(zhí)行指令。中定義的指令不會繼承到當前引用的鏡像中,也就是當引用的鏡像創(chuàng)建完成后將會清除所 本文最早發(fā)表于本人博客: Docker 快速入門指引 Docker是什么? Docker是 Docker.Inc 公司開源的一個基于 LXC技術之上構建的...
摘要:如果有服務器需要維護重啟時,也會重啟,此時端口會發(fā)生變化,仍然會隨機拿一個沒有使用的端口號來和號端口做端口映射。除非該刪掉后,端口號會被分配給其他使用。 Dockerfile Docker是軟件工業(yè)上的集裝箱技術。 通過以下文件制作Docker鏡像 [root@Optimus docker-training]# cd centos7/ [root@Optimus centos7]# l...
摘要:分鐘快速入門教程一歡迎來到世界與虛擬化在沒有的時代,我們會使用硬件虛擬化虛擬機以提供隔離。倉庫分為公開倉庫和私有倉庫,最大的公開倉庫是官方倉庫,國內(nèi)的公開倉庫也有很多選擇,例如阿里云等。 30 分鐘快速入門 Docker 教程 一、歡迎來到 Docker 世界 1. Docker 與虛擬化 在沒有 Docker 的時代,我們會使用硬件虛擬化(虛擬機)以提供隔離。這里,虛擬機通過在操作系...
摘要:采用虛擬化的技術來虛擬化出應用程序的運行環(huán)境。安裝成功后,可以通過查看版本號盡量使用最新的穩(wěn)定版本。是鏡像名,是鏡像的版本號,到此你已經(jīng)成功構建了一個新的鏡像,你可以通過,查看你的鏡像。部署時將此文件到生產(chǎn)環(huán)境服務器上。 Docker docker是一個開源的應用容器引擎,可以為我們提供安全、可移植、可重復的自動化部署的方式。docker采用虛擬化的技術來虛擬化出應用程序的運行環(huán)境。此...
閱讀 3684·2021-08-10 09:42
閱讀 584·2019-08-30 15:55
閱讀 880·2019-08-30 15:54
閱讀 3104·2019-08-30 13:45
閱讀 549·2019-08-29 16:23
閱讀 1986·2019-08-29 16:23
閱讀 976·2019-08-29 15:18
閱讀 2255·2019-08-29 12:57