Docker常用命令
- 1.基本命令
- 2.镜像命令
- 3.容器命令
1.基本命令
启动docker
systemctl start docker
关闭docker
systemctl stop docker
重启docker
systemctl restart docker
设置docker开机自启
systemctl enable docker
查看docker当前运行状态
#如果docker当前正在运行,则会出现active提示信息
systemctl status docker
查看docker版本号信息
docker version
查看docker详细信息
docker info
2.镜像命令
查看docker镜像
docker images
查询镜像
docker search 镜像名称
#例:搜索STARS>1000的mysql镜像:
docker search --filter=STARS=1000 mysql
拉取镜像
docker pull 镜像名称
docker pull 镜像名称:tag
#如果不指定tag,则默认拉取最新版本镜像,tag为latest
运行镜像
docker run 镜像名称
docker run 镜像名称:tag
删除镜像
#删除单个镜像
docker rmi -f 镜像名称/镜像ID
#删除多个镜像
docker rmi -f 镜像名称/镜像ID 镜像名称/镜像ID ..
#删除全部镜像 -a全部 -q只显示ID
docker rmi -f $(docker images -aq)
强制删除镜像
docker image rm 镜像名称/镜像ID
转存镜像
将镜像保存为tar格式的压缩格式,以便在其他docker机器上使用。
docker save 镜像名称/镜像ID -o 镜像保存全路径
例:
docker save tomcat -o /mytomcat.tar
加载镜像
将转存的镜像文件恢复为可执行镜像
docker load -i 镜像文件
镜像复制
在原镜像的基础上复制出不同名称或版本号的新镜像
docker tag 原镜像名称:tag 新镜像名称:新tag
#tag与新tag可省略,若省略则默认取latest
3.容器命令
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
运行镜像来生成容器实例
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) --name 给要运行的容器起的名字 /bin/bash 交互路径
docker run -it -d --name 容器实例名 镜像名:tag /bin/bash
例:拉取redis镜像,运行生成容器实例
#拉取redis镜像
docker pull redis:5.0.5
#运行镜像
docker run -it -d --name redis01 redis:5.0.5 /bin/bash
注意!:
此时通过docker ps命令可以看到6379端口已经被占用,按照常理来说redis已经启动成功可以进行访问。
但是,我们发现访问6379端口还不能使用redis,这是因为此时redis占用的6379端口仅仅是在容器内部的端口,与宿主机的6379端口并无联系,我们通过宿主机Ip:6379访问此redis是不行的!
如果外部想要访问容器,必须得让容器中的端口与宿主机的端口建立映射关系,这个概念叫做容器端口映射。端口映射通过运行镜像时添加-p参数来指定。
端口映射示例
docker run -itd --name redis02 -p 6379:6379 redis:5.0.5 /bin/bash
此时宿主机的6379端口已经和容器内的6379端口完成了映射,通过访问宿主机6379端口就可以访问到容器内的redis应用。
进入容器内部方式
#方式一(推荐):
docker exec -id 容器名/容器ID /bin/bash
#方式二(不推荐):
docker attach 容器名/容器ID
区别:
exec(为较为常用的):使用exec进入容器后,是开启一个新的操作终端。
attach:在当前容器正在执行的终端里进行操作。
退出容器
#方式一(启动时未加-d的容器会停止运行):
exit
#方式二(容器不会被关闭):
Ctrl + P + Q
启动容器
docker start 容器ID/容器名称
停止容器
docker stop 容器ID/容器名称
重启容器
docker restart 容器ID/容器名称
关闭容器
docker kill 容器ID/容器名称
查看容器详细信息
docker inspect 容器ID/容器名称
容器/宿主机文件拷贝
#容器->服务器
docker cp 容器ID/名称:容器文件路径 外部文件路径
#服务器->容器
docker cp 外部文件路径 容器ID/名称:容器内文件路径
查看容器日志
#-f 跟踪日志输出 -t显示时间戳 --since时间起点 --tail显示末尾行数
docker log -f -t --since="日期时间" --tail=行数 容器ID
设置容器随docker启动自启
#启动时添加参数--restart=always
docker run -itd --name redis02 -p 6379:6379 --restart=always redis:5.0.5 /bin/bash
容器数据挂载
数据挂载就是将容器内的数据通过-v命令参数持久化到宿主机,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复。
-v 宿主机文件位置:容器内文件位置
#一个容器可以挂载多个文件位置
-v 宿主机文件位置:容器内文件位置 -v 宿主机文件位置:容器内文件位置..
示例:
# 运行一个docker redis容器进行端口映射,两个数据卷挂载,设置开机自启动
docker run -d -p 6379:6379 --name redis505 --restart=always -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf redis:5.0.5 --requirepass "password"
已运行的容器设置开机自启动
#方式一:
docker update --restart=always 容器ID/容器名称
方式二:
docker cotainer update --restart=always 容器ID/容器名称
更改容器名称
docker rename 容器ID/容器名称 新名称