docker小结1

1通过dockerfile建立一个简单的HELLO.C,然后做一个简单的dockerimage

,这个是baseimage,共享宿主机的baseimage

建立目录,比如helloworld目录下,建立Dockerfile文件,写入

FROMscratch

ADDhello/

CMD["/hello"]//CMD运行后是会马上退出的

>dockerbuild-tliaoyurong/hello-world.

运行dockerrunliaoyurong/hello-world输出结果

2IMAGE和容器container的关系,大概等于类和实例的关系

3docercontainerls-a//列出当前运行和已退出的container

4dockerrun-itcentos//直接会进centosdecontainer,

exit//退出

5dockercontainerrmcontainerid(可以不写全)

6dockerps-a

dockerls-aq//列出所有containerid

dockerrm$(dockercontainerls-aq)//全部清理

7

比如在container中做了修改后,EXIT退出DOCKER,

docercontainerls-a

找出最新的names(是个随机字母)

dockercommitnamesxxxx/xxxx//容器中再修改后再提交成IMAGE

8通过dockerfile往CENTOS中安装VIM

FROMcentos

RUNyum-installvim

然后dockerbuild-tliao/xxxx.

9dockerfile语法

FROMscratch//制作baseimage

FROMcentos

LABELversion="1.0"//定义相关元数据

RUNyumupdate&&yuminstall-y.....

WORKDIR/root设定当前工作目录

ADDhello///复制到根目录

ADDtest.tar.gz/添加到根目录并解压

WORKDIR/root

ADDhellotest/hello的位置在#/root/test/hello

ENVMYSQL_VER5.6//设定的常量

10RUN:执行命令并创建新的IMAGELAYER

CMD:设置容易启动后默认执行的命令和参数,如果

dockerrun指定了其他命令,则CMD命令被忽略,

如果定义了多个CMD,则最后一个才给执行

ENTRYPOINT:设置容器启动时运行的命令

11SHELL格式

RUNapt-getinstall-yvim

CMDecho"hello"

ENTRYPOINTecho"hello"

//shell格式执行的话,能识别比如$name=abc这样的参数替换

EXEC格式

RUN["apt-get","install",.....]//通过逗号分隔

ENVnamedocker

ENTRYPOINT["/bin/bash","-c","echohello$name"]

12ENTRYPOINT//一般让容易以应用程序用服务形式执行,一定会执行;

13dockerpushxxx/xxxx;//发布

dockerpullxxx/xxxx//推送

分享dockerfile:

可以关联github上的库,dockerhub服务器从GITHUB上BUILD,等于DOCKERHUB帮你BUILD了,

其他人更信服

14dockersearchjava//搜索

15dockerrun-d-p91:80nginx

就是启动一个NGINX容器,-d后台运行-p宿主机端口:容器端口

则访问http://docker宿主IP:91就等于访问NGINX的80

相关推荐