Docker常用命令
Docker命令从入门到实践
镜像命令
docker images 列出本机上的镜像
docker images -a:列出本地所有镜像(含中间cen镜像)
docker images -q:只显示镜像id
docker images --digests:显示镜像的摘要信息
docker images --no-trunc:显示完整的镜像信息
docker search 某个镜像的名字
docker search [name] --no-trunc:显示完整的镜像描述
docker search [name] -s:列出收藏数不小于指定值的镜像
docker search [name] --automated:只列出 automated build 类型的镜像
docker pull 某个镜像的名字:下载镜像
docker pull 镜像名字:[TAG]:下载指定版本的镜像
docker rmi 某个镜像id:删除镜像
docker rmi -f 镜像id:删除单个
docker rmi -f 镜像名1 镜像名2:删除多个
docker rmi -f${docker images -qa}:删除全部
容器命令
新建并启动容器docker run [OPTIONS] IMAGE [CPMMAND][ARG...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
- –name=“容器新名字”: 为容器指定一个名称;
- -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
- -i:以交互模式运行容器,通常与 -t 同时使用;交互式操作
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;新终端
- -P: 随机端口映射;
- -p: 指定端口映射,有以下四种格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
- bin/bash :放在镜像后面的命令,这里我们希望有个交互式shell,因此用的是/bin/bash,要退出终端直接用exit;
列出当前所有正在运行的容器docker ps [OPTIONS]
OPTIONS说明(常用):
- -a :列出当前所有正在运行的容器+历史上运行过的
- -l :显示最近创建的容器。
- -n:显示最近n个创建的容器。
- -q :静默模式,只显示容器编号。
- –no-trunc :不截断输出。
退出容器
- exit :容器停止并退出
- ctrl+P+Q:容器不停止退出
启动容器docker start 容器id或容器名
重启容器docker restart 容器id或容器名
停止容器docker stop 容器id或容器名
强制停止容器docker kill 容器id或容器名
删除已停止的容器docker rm 容器ID
docker rm -f ${docker ps -a -q}或docker ps -a -q | xargs docker rm: 一次性删除多个
启动守护式容器 docker run -d 容器名
启动交互式容器 docker run -it 容器名
切记像是Mysql、redis一定要启动后台守护式进程,一定 -d
//以redis为例,像mysql redis这种常驻后台的服务要运行容器后执行docker ps查看是否运行正常 [root@192 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis 6.2 aa41c0869d44 3 days ago 113MB redis latest 1ca2c2a1b554 3 days ago 117MB ubuntu latest 825d55fb6340 5 weeks ago 72.8MB mysql 5.7 f26e21ddd20d 6 weeks ago 450MB hello-world latest feb5d9fea6a5 7 months ago 13.3kB [root@192 ~]# docker run -d redis:6.2 8d32554214a2d2f2b9b3f107c48272714738da63aa66b2fb19a83b9b92c4d690 [root@192 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8d32554214a2 redis:6.2 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 6379/tcp mystifying_williamson 0131d3bea50e redis:6.2 "docker-entrypoint.s…" 17 seconds ago Up 15 seconds 6379/tcp strange_bohr
查看容器日志docker logs -f -t --tail 容器id
- -t加入时间戳
- -f跟随最新日志打印
- –tail显示最后多少条
查看容器内运行的进程docker top 容器id
查看容器内部细节docker inspect 容器id
从容器内拷贝文件到主机上docker cp 容器id:容器内路径 目的主机路径
进入正在运行的容器并以命令行交互
- docker exec -it 容器id bin/bash:在容器中打开新的终端,并且可以启动新的进程 ,用exit退出,不会导致容器停止。如 docker exec -it d0198d7d4701 /bin/bash
- docker attach 容器id:直接进入容器启动命令的终端,不会启动新的进程,用exit退出的话,会导致容器停止。
[root@localhost ~]# docker ps -a. //docker ps -a是列举当前活着的和历史出现过的,docker ps是列出当前活着的
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d16b33bf5818 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Exited (255) 5 hours ago 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
0c8c9ac7e7a2 redis:6.0.8 "docker-entrypoint.s…" 4 weeks ago Exited (0) 4 weeks ago nifty_thompson
1c28b082941a ubuntu "/bin/bash" 4 weeks ago Exited (129) 4 weeks ago aaa
4b7f9290c1be ubuntu "bash" 4 weeks ago Exited (0) 4 weeks ago myubuntu
f197890eeab0 ubuntu "/bin/bash" 4 weeks ago Exited (129) 4 weeks ago my-ubuntu
6a2e08188938 ubuntu "/bin/bash" 4 weeks ago Exited (129) 4 weeks ago gracious_engelbart
5156c28ea455 hello-world "/hello" 4 weeks ago Exited (0) 4 weeks ago recursing_tereshkova
docker ps -l //显示最近创建的容器 docker ps -n 3 //显示最近3个创建的容器
exit :容器停止并退出
ctrl+P+Q:容器不停止退出
启动容器docker start 容器id或容器名
重启容器docker restart 容器id或容器名
停止容器docker stop 容器id或容器名
强制停止容器docker kill 容器id或容器名
删除已停止的容器docker rm 容器ID
docker rm `docker ps -a -q` #删除所有的已经停止的容器
docker commit
docker commit :从容器创建一个新的镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
- -a :提交的镜像作者;
- -c :使用Dockerfile指令来创建镜像;
- -m :提交时的说明文字;
- -p :在commit时,将容器暂停。
[root@192 ~]# docker commit -m ="mkdir ttt" -a="wt" 8d32554214a2 wt_redis:6.3.1 sha256:84e6494e131bd285135ac97a39d05d27cc829235db41be61b311d25ed782cba8 [root@192 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE wt_redis 6.3.1 84e6494e131b 9 seconds ago 113MB redis 6.2 aa41c0869d44 3 days ago 113MB redis latest 1ca2c2a1b554 3 days ago 117MB ubuntu latest 825d55fb6340 5 weeks ago 72.8MB mysql 5.7 f26e21ddd20d 6 weeks ago 450MB hello-world latest feb5d9fea6a5 7 months ago 13.3kB
[root@192 ~]# docker run -it 84e6494e131b /bin/bash