容器生命周期
1、判断本地是否存在镜像,如果不存在则从远端拉取存至本地
2、利用镜像启动容器
3、分配一个文件系统(bootfs) 并在只读层(镜像)外面挂一个可读写层
4、从宿主机配置的网桥接口中分配一个虚拟接口到容器
5、从地址池中配置一个IP给容器
6、执行用户指定的命令
7、执行完毕 容器停止
本文章并没有列举所有容器操作指令,使用docker --help 查看更多
基本操作
查看容器
指令格式:docker ps [-a]docker ps 用于查看 正在运行中未结束的容器。 docker ps -a 可选参数 -a 用于查看所有的容器 不管是处于运行 或是其它状态的
启动容器
指令格式:docker run [options] image [command] [args]
potions:选项
-i:表示启动一个可交互的容器,并持续打开标准输入
-t:表示使用终端关联到容器的标准输入输出上
-d:表示使容器后台运行
—rm:容器结束后自动删除
—name:定义容器的唯一名称
image:要运行的镜像
command:启动容器时要运行的命令
启动交互式容器
docker run -it alpine:latest /bin/sh
非交互式的后台容器
docker run -d --rm --name myalpine3 alpine:latest /bin/sh
进入容器内部
docker exec -it myalpine3 /bin/shexit指令 可以退出容器 回到宿主机
停止容器
启动容器
docker start myalpine3
重启容器
docker restart myalpine3
删除容器
删除容器
删除容器 可以使用容器的ID 也可以使用容器的名称 同样 ID 依旧可以偷懒 只写前面部分 只要能够区别出唯一容器即可docker rm b35ff09766b8 docker rm loving_clarke
强制删除正在运行中的容器
删除正在运行在的容器需要使用可选参数-f 表示强制删除 docker rm -f b35ff09766b8
删除宿主机所有已结束的容器
for i indocker ps -a|grep -i exit|awk ‘{print $1}’;do docker rm -f $i;done
提交容器
docker commit -p myalpine suyan0909/alpine:20.10.22
导出镜像文件
docker save 0927 > alpine:20.10.22.txt.tar 或者 docker save 0927 -o alpine:20.10.22.txt.tar 这两种都可以 我个人习惯使用 > 来重定向成文件 
导入镜像文件
docker load < alpine\:20.10.22.txt.tar
导入的镜像 没有镜像名称和标签 需要使用docker tag 为镜像添加名称和标签 参考文档 💦Docker 基础入门 🌾 镜像
🌲查看容器日志
docker logs [OPTIONS] CONTAINER
Options:
—details 显示更多的信息
-f, —follow 跟踪实时日志
—since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
—tail string 从日志末尾显示多少行日志, 默认是all
-t, —timestamps 显示时间戳
—until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟) # 容器ID和容器名称都可以 同样 容器ID可以偷懒 Nice
