下载上docker之后会在Linux命令库中添加docker命令,并且为了避免命令重复,新添加的命令会带着对应软件名(docker)。
针对docker的命令,docker为末尾,针对docker中镜像/容器的命令,docker为首头。
$(其他命令参数)
涉及镜像ID的命令要配合:docker images -a食用
涉及容器ID的命令要配合:docker ps -a食用
查看docker总体帮助文档: docker --help
查看docker命令帮助文档: docker 具体命令 --help
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker//配置docker开机自启动后上述命令就不需要执行了。
查看docker概要信息: docker info
Docker镜像

docker images -qa:只列出本地镜像的全部ID

一般选择第一个镜像就可以(点赞stars最多)
docker search --limit 5某个XXX镜像名字
–limit : 只列出N个镜像,默认25个
默认最新版



配合docker images:查看全部镜像ID

rmi:remove image

docker rmi -f $(docker images -qa):删除所有镜像。
#使用镜像centos:latest以后台模式启动一个容器
docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程:此处类似java的垃圾处理机制
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,
我们配置启动服务只需要启动响应的service即可。例如service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,
常见就是命令行模式,表示我还有交互操作,别中断,O(∩_∩)O哈哈~
#使用镜像ubuntu:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it ubuntu /bin/bash
启动ubuntu容器后,保留交互(-i)终端窗口(-t),在容器内执行/bin/bash命令。

OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字” 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p


OPTIONS说明(常用):
无参 默认显示正在运行的容器
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号ID。


配合docker ps -a使用查看运行中容器ID


容器是要用终端操作容器的,你就需要前台启动,后台启动的容器你没办法操作,这个虚拟机就没意义,就会自杀,redis就是作为数据库或者缓存用的,不需要你去操作,他就有后台进程。


Docker run容器后ctr+q+p退出,docker exec -it ID/attach -it ID进入对应ID容器。
exec和attach 都是进入当前运行容器的命令
由于attach进入的是原始终端所以exit退出后就是容器真正退出终止,但是exec是新开终端只会退出此新开终端原始容器不会退出。

容器→主机
配合docker ps -a使用查看运行中容器ID
公式:docker cp 容器ID:容器内路径 目的主机路径

可以export备份容器然后import运行备份



