您的位置:首页 > 运维架构 > Docker

Docker:镜像构建与进入容器总结

2017-10-30 16:52 676 查看

构建镜像总结

docker构建镜像有两种方法:

1、使用docker commit + 容器


docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-a, --author="" Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-m, --message="" Commit message
-p, --pause=true Pause container during commit


例如:

docker pull 某某镜像;//先下载某某基础镜像

docker run --name mycontainer -d 某某镜像 //跑起来一个容器

docker exec mycontainer /bin/bash //进入镜像

apt-get update

apt-get install xxx //做一些安装修改

exit //退出镜像

docker commit mycontainer myimages/testimage:v1 //从容器创建一个自己的镜像,打上tag

docker save --output testimage_v1.tar testimage:v1 //把镜像保存成tar包到本地

2、使用docker build +Dockerfile文件


docker build [OPTIONS] PATH | URL

--force-rm=false 不管构建成功失败都删除产生的中间容器
--no-cache=false 构建镜像的时候不使用缓存
-q,--quiet=false 禁止容器生成输出
--rm=true 构建成功时候删除中间容器
-t,--tag="" 给镜像打tag


上面的Path中 用 . 表示当前路径

例如:在当前路径构建一个镜像

docker build -t mytestimage:v1 .

进入容器总结

1、使用docker exec -it 容器名 /bin/bash


docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

-d [command]: 后台运行一个Linux命令;如:docker exec -d 容器01 touch /temp/mytext ;这个命令在容器01里面创建一个文件

-e [varname=value] 设置一个环境变量;如:docker exec -e var1=1 容器01 bash ;会在当前会话创建一个var1的环境变量,只在当前会话有效

-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端;如:docker exec -ti 容器01 /bin/bash ;命令会保持一个连接容器的终端;


这种方法在前文测试时候经常见到过

2、使用docker attach 容器名


docker attach 容器名


这个模式进入容器后,当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。

docker inspect 查看容器的一些详细信息;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: