docker使用管理
[*]容器生命周期
[*]docker命令获取帮助
[*]docker的常用命令
[*]docker基本操作
[*]镜像管理
[*] 容器生命周期
http://i2.运维网.com/images/blog/201812/07/569d82a484adff1ca2f734f01fc7e834.png
运行容器一个实例:
#docker run -it --rm --name bbox busybox:latest /bin/sh
当运行这条指令后的执行流程步骤:
1.检查本地是否存在指定的镜像,不存在则从registry下载;
2.利用镜像启动容器
3.分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层;
4.从宿主机配置的网桥接口桥接一个虚拟接口给此容器;
5.从地址池中分配一个地址给容器;
6.执行用户指定的应用程序;
7.程序执行完成后,容器即终止
注意:容器是为任务而生,任务完成即销毁,释放资源。为单一任务(进程)设计
[*] docker命令获取帮助
man ,docker --help...
用法:docker COMMAND
docker COMMAND --help 获取单个指令的详细用法
[*] docker的常用命令
环境信息相关:
info
version :查看当前安装版本信息
系统维护相关:
images :查看本地镜像
inspect:查看docker对象的详细信息,json格式
build:构建镜像
commit :基于已有容器创建镜像
pause/unpause :暂停(恢复)当前运行容器
ps:查看当前在运行的容器
rm :删除docker ps -qa |xargs docker rm -f
rmi :删除镜像 docker images -qa |xargs docker rmi 删除 所有镜像
run:运行容器
start/stop/restart:启动、停止、重启容器
top:用于查看正在运行的容器中的进程的运行状态
kill:终止当前运行的某个容器
...
日志信息相关:
events
history
logs:查看容器运行日志
Docker hub服务相关:
login:登录仓库
logout
pull:从仓库拉取镜像到本地
push:将镜像推送至某仓库
search:搜索镜像
[*] 基本操作:
[*]启动一个nginx容器,使其在后台运行并将其80端口映射到宿主机8080端口
docker run -d -p 8080:80 httpd
docker run常用选项:
-t:配置一个伪终端并绑定到容器的标准输入上
-i:让容器的标准输入保持打开
-d:将容器放入后台运行
-c:指定分配该容器的cpu分片
-m:指定分配给该容器的内存大小,单位为B,K,M,G
--name:为容器分配指定名称
--rm:当容器退出时自动删除容器
# docker run -it --rm alpine:latest /bin/ls
bin etc lib mnt root sbin sys usr
dev home mediaproc run srv tmp var
# docker run -it alpine:latest /bin/ls
bin etc lib mnt root sbin sys usr
dev home mediaproc run srv tmp var
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME
S49aedd5aca20 alpine:latest "/bin/ls" 10 seconds ago Exited (0) 8 seconds ago joll
y_goldwasser
[*]把容器运行在前台:启动一个alpine容器输出 hello world,打印完即退出
# docker run --rm alpine:latest /bin/echo "hello woeld"hello woeld
[*]容器运行在后台:
docker run -d alpine:latest/bin/sh -c "while true; do echo hello world; sleep 1;done"
服务类容器需要长期运行,所以使用daemon的方式运行;而工作类环境通常是给我们提供一个临时的工作环境,所以一般以run –ti的方式在前台运行
[*]查看当前节点上的容器状态
docker ps #查看当前正在运行的容器
选项:
-a:查看所有容器,包括停止的
-q:只显示容器ID
-l:显示最后一次创建的容器`
[*] 镜像管理操作
[*]获取镜像
docker pull name:tag #镜像直接从官方网站下载
docker pull xuetong.com:5000/centos:6.6 #从指定仓库下载
[*]查看镜像
docker images
docker inspect centos:latest #获取镜像的详细信息
[*]镜像打标签
docker tag centos:latest xuetong.com:5000/centos:6.6
[*]搜索镜像
docker search NAME:tag
建议直接到官方网站搜索:https://hub.docker.com/explore/
[*]镜像导入导出
dockersave-o/PATH/TO/SOMEFILE.TARNAME[:TAG]
dockerload-i/PATH/FROM/SOMEFILE.TAR
docker image load -i /root/centos-latest.tar.xz
[*]删除镜像
docker rmi name:tag
如果一个镜像有多个tag,只会删除指定的tag,镜像本身不会删除,如果docker rmi后指定镜像ID,则所有tag都会被删除
有时候重新安装后,发现docker rmi删除不了,可以直接删除rm -rf /var/lib/docker/image/overlay2/imagedb/content/sha256/* #默认镜像下载地方
# docker rmi $(docker images -q)Error: No such image: 0763c7d87fddError: No such image: e1ddd7948a1cError: No such image: b2b03e9146e1Error: No such image: 11cd0b38bc3c# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZErancher/rancher latest 0763c7d87fdd 4 months ago 528MBbusybox latest e1ddd7948a1c 4 months ago 1.16MBregistry latest b2b03e9146e1 5 months ago 33.3MB
[*]创建镜像:commit(根据现有镜像创建),不建议使用这种方法,无获取构建过程,建议使用dockerfile构建。
页:
[1]