docker的常用命令
帮助命令
docker version #查看版本信息
docker info #显示docker系统信息
docker (具体命令) --help #帮助命令
镜像命令
查看镜像
docker images #查看所有本地的主机上的镜像
-a,–all #列出所有镜像
-q,–quiet #只显示镜像的id
REPOSITORY 镜像仓库源
TAG 镜像的标签
镜像搜索
docker search 镜像名 #镜像搜索
docker search mysql #搜索mysql镜像
–filter=STARS=500 #搜索STARS大于500的镜像
镜像下载
docker pull 镜像名 [:tag] #镜像下载
docker pull mysql #下载mysql镜像,不指定版本直接下载最新版(latest)
docker pull mysql:5.7 #下载mysql5.7版本
docker拉取镜像采用分层下载(image的核心,联合文件系统)。之前已经下载的文件,若是与之后的镜像由重复的文件,不会重复下载。可以大大的节省空间。
镜像删除
docker rmi -f mysql #删除mysql镜像,也可以通过镜像id删除,只要把镜像名称换成镜像id,删除只会删除自己独有的文件,与其他镜像共有的文件不会删除。用空格来分隔多个要删除的容器
docker rmi -f $(docker images -aq) #删除全部镜像
镜像仓库
docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
-u 登录的用户名
-p 登录的密码
docker push #将本地的镜像上传到镜像仓库,要事先登录到镜像仓库
docker tag #标记本地镜像,将其归入某一仓库
docker tag nginx:latest web:n1 #创建web:n1镜像,即web仓库的n1镜像,该镜像与nginx:latest相同
docker build 命令用于使用 Dockerfile 创建镜像。
docker history : 查看指定镜像的创建历史。
docker save : 将指定镜像保存成 tar 归档文件。
docker load : 导入使用 docker save 命令导出的镜像。
docker import : 从归档文件中创建新的镜像。
容器命令
有了镜像才能创建容器
docker pull centos #拉取centos镜像
新建容器
docker run [参数] image #新建容器并启动
docker create [参数] image #新建容器不启动
#选项
–name=“name” 容器名字
-d 后台方式运行
-it 使用交互的方式运行,进入容器查看内容
-p 指定容器的端口(-p 8080)
-p 主机端口:容器端口
-p 容器端口
容器端口
docker run -it centos /bin/bash #启动并进入指定容器cenos
这是精简版的centos,命令不完善
exit #退出
列出所有运行的容器
docker ps #列出当前正在运行的容器
-a 列出当前正在运行的容器+历史运行容器
-n=? 显示最近创建的?个容器
-q 只显示容器编号
-f 根据条件过滤显示的内容。
–format 指定返回值的模板文件。
-l 显示最近创建的容器。
–no-trunc 不截断输出。
-s 显示总的文件大小。
容器的状态:
created(已创建)
restarting(重启中)
running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
退出容器
exit #直接退出并停止
Ctrl + P + Q #容器不停止退出
删除容器
docker rm 容器id #删除指定容器,但不能删除正在运行的容器
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q | xargs docker rm #删除所有容器
启动和停止容器操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止正在运行的容器
docker kill 容器id #强制停止当前容器
常用的其他命令
后台启动容器后(docker run -d),查看运行的容器,发现容器停止了。这是因为,docker容器在后台运行后,必须在前台有进程,如果没有,就会自动停止(容器启动后发现自己没有提供服务,就会停止)
查看日志
docker logs -f -t --tail 容器
docker run -d centos /bin/sh -c “while true;do echo 666;sleep 1;done” #运行容器,并在其中运行一个shell,每隔一秒,输出一次666“,方便查看日志
docker logs -f -t --tail 10 7af3884a4cfc #查看后十行日志
容器中的进程
docker top 容器id #查看容器京城信息
docker pause 容器id #暂停容器中所有进程
docker unpause 容器id #恢复容器中的所有进程
docker events 容器id #从服务器获取实时时间
docker wait 容器id #阻塞容器运行知道容器停止,然后打印出他的退出码
查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器
#通常情况下容器都是使用后台方式执行,需要进入容器,进行一配置修改
docker exec -it 容器id /bin/bash
docker attach 容器id
#docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach 进入容器正在执行的终端
归档
容器导出
docker export 容器id > 文件名#将文件系统最为一个tar归档文件导出到STDOUT
-o 将输入内容写到文件
容器导入生成镜像
docker import 文件名 指定镜像名称
cat 文件名 | docker import
从容器内拷贝文件到主机上
docker attach #容器id #进入容器
touch /home/test #在home下创建text
exit #退出
docker cp 容器id:/home/test /home #将容器内的home下的text文件复制到主机的/home下
ls /home #查看
容器的端口映射
docker port 容器id #查看容器的端口映射
从容器中创建一个新的镜像
docker commit [] 容器id []
docker commit -a “ph” -m “hp” xxxx aa:bb #从容器xxxx创建一个新的镜像,仓库源为aa标签为bb
退出
docker cp 容器id:/home/test /home #将容器内的home下的text文件复制到主机的/home下
ls /home #查看
容器的端口映射
docker port 容器id #查看容器的端口映射
从容器中创建一个新的镜像
docker commit [] 容器id []
docker commit -a “ph” -m “hp” xxxx aa:bb #从容器xxxx创建一个新的镜像,仓库源为aa标签为bb