基础命令:
docker version # 验证命令docker info # docker信息描述docker --help # 帮助辅助命令
镜像命令:
鲸鱼背上有集装箱, 蓝色大海里面——宿主机系统window10
鲸鱼 :docker
集装箱: 容器实例 from dockers 模板
镜像相当于类、模板,一个镜像可完成多个实例
dockers images # 列出本地主机上所有镜像 [options]: -a :列出本地所有的镜像(含中间映像层) -q : 只显镜像ID --digests:显示镜像摘要信息 --no-trunc 显示完整的镜像信息
docker search 某个镜像名字:
docker search NAME [OPTIONS] --no-trunc # 显示完整的镜像描述-s # 列出受常熟不小于指定值的镜像--automated # 只列出automated build 类型的镜像
docker pull
docker pull NAME:version# 等价于 docker pull xxx:latest, lates可更换所需要版本号
docker delete:
# 删除单个xxx镜像或镜像IDdocker rmi -f NAME # 删除多个docker rmi -f xxx1:版本号 xxx2:版本号(可不写,默认为latest)# 删除全部(慎用!)docker rmi -f $(docker images -qa)
容器命令:
有镜像才能创建容器,这是根本前提 —docker pull centos,交互式!
新建容器
--docker run [options] NAME [command][tag...] options: --name="容器新名字" # 为容器指定一个名称 -d:# 后台运行,并返回CONTAINER ID,即启动守护式容器: -i:# 以交互模式运行容器,通常与-t一起使用 -t:# 为容器重新分配一个为输入终端; -P:# 随机端口映射; -p:# 指定端口映射,有以下四种形式: ip:hostport:containerPort ip:containerPort hostPort:containerPort containerPort 实际操作(交互式容器): docker run -it {--name mycentos0110} images_id
列出正在运行的容器
docker ps [options] options: -a 列出当前所有正在运行的容器+历史运行 -l 显示最近创建的容器 -n 显示最近n个创建的容器 -q 静默模式,只显示容器编号 --no-trunc :不截断输出
退出及进入容器:
exit # 容器停止退出ctrl+P+Q # 容器不停止退出docker ps # 列出正在运行的重新进入: docker start container_id
停止容器:
# 停止容器 docker stop CONTAINER ID (NAME) # 强制停止 docker kill CONTAINER ID
删除已停止的容器:
docker rm CONTAINER ID docker rm -f $(docker ps -a -q) docker ps -a -q | xargs docker rm # "|"管道符,将前面的值传递给xargs
守护进程容器:
开启
docker run -d centos
说明:docker 容器后台运行,就必须有一个前台进程
容器运行命令如果不是一直挂起的命令(top\tail),就会自动退出
最佳解决方案:将要运行的程序以前台进程的形式运行
docker run -d centos /bin/sh -c "while true; do echo hello world;sleep 2;done"
查看容器日志:
docker logs -f -t --tail CONTAINER ID [Options] -t # 加入时间戳 -f # 跟随最新的日志打印 --tail 数字 # 显示最后多少条
# 查看容器内运行的进程 docker top CONTAINER ID # 查看容器内部细节 docker inspect CONTAINER ID
进入正在运行的容器并以命令行交互:
docker exec -it CONTAINER ID docker attach CONTAINER ID
二者的区别:
attach :直接进入容器启动命令的终端,不会启动新的进程
exec: 是在容器中打开新的终端,并可以启动新的进程
使用exec进入启动中的容器,exit退出不会结束容器
容器持久化
docker cp CONTAINER ID:[docker 内路径] [目的主机路径]