您的位置:首页 > 运维架构 > Docker

Docker 常用命令

2019-12-12 15:23 1191 查看

一、Docker镜像操作基础命令

[root@localhost ~]# docker search    镜像名称      //搜索镜像(在docker hub官网上进行查找)
[root@localhost ~]# docker pull 镜像名称           //下载镜像(如果不指定镜像标签默认下载最新版的镜像)
[root@localhost ~]# docker push 仓库名称/仓库账号/镜像名称         //上传镜像
[root@localhost ~]# docker images                 //查询本地下载的所有镜像
[root@localhost ~]# docker images 镜像名称         //查询指定的镜像
[root@localhost ~]# docker inspect    容器名称或容器ID       //查询镜像的详细信息
[root@localhost ~]# docker tag 原本的镜像名称及标签       生成以后的镜像名称及标签       //为本地镜像起一个新的名称、标签(源镜像还存在)
[root@localhost ~]# docker rmi  镜像名或镜像ID         //删除本地镜像
[root@localhost ~]# docker rmi  镜像名或镜像ID      //强制删除本地镜像
//注意:强制的这种方式适用于有容器正在使用这个镜像
//这种方式容器如果在运行时也是无法删除的,容器停止后删除的话,容器依然可以使用
[root@localhost ~]# docker save >     通过镜像生成的文件    镜像名称
[root@localhost ~]# docker save -o   通过镜像生成的文件    镜像名称      //通过镜像生成新的镜像文件
[root@localhost ~]# docker load < 镜像文件
[root@localhost ~]# docker load --i 镜像文件        //将本地的镜像文件生成为镜像
//建议:“>”和“<”号成对使用、“i”和“o”成对使用

二、Docker容器操作基础命令

[root@localhost ~]# docker create -it --name 容器名称 使用的镜像 /bin/bash
//使用指定的镜像生成一个容器,并指定一个shell

常用选项解释如下:

  • -i:采用交互式的方式;
  • -t:分配一个伪终端;
  • -d:后台运行;
  • --name:指定容器名称
  • --restart=always:始终保持容器运行(随着docker的启动而启动)
[root@localhost ~]# docker ps            //查询本机正在运行的容器
[root@localhost ~]# docker ps    -a       //查询本机所有的容器,不管容器是否在运行
[root@localhost ~]# docker start 容器名称或容器ID          //启动容器
[root@localhost ~]# docker stop 容器名称或容器ID          //停止容器
[root@localhost ~]# docker restart 容器名称或容器ID          //重新启动容器
[root@localhost ~]# docker exec -it 容器名称或容器ID /bin/bash      //进入容器并分配一个可用的shell
[root@localhost ~]# docker attach dhcp               //也是进入容器
//如果是attach进入容器,使用exit退出的话这个容器也会关闭。
//使用ctrl+p  ctrl+q退出容器,并不会关闭这个容器,会保持容器的运行状态。
[root@localhost ~]# docker cp docker宿主机文件       docker容器的目录           //从本地上传文件到容器中
[root@localhost ~]# docker docker宿主机文件       docker容器的目录       //将容器中的文件下载到本地
[root@localhost ~]# docker commit 容器名称  镜像名称及标签
//通过容器生成镜像
[root@localhost ~]# docker run -itd --name registry --restart=always  -p 5000:5000 -v /registry:/var/lib/registry registry:2
//-p:端口映射(前面是宿主机端口:后面是容器暴露的端口)
//-v:挂载目录(前面是宿主机的目录:后面的是容器的目录)自动创建宿主机的目录
[root@localhost ~]# docker run -itd --name nginx 192.168.1.1:5000/centos:nginx nginx -g "daemon off;"
//创建容器,不进入容器即开启容器中的服务
[root@localhost ~]# docker logs  容器名称会容器ID
//查看容器的日志,可以在后面加“-f”选项,动态输出
//如果没有内容输出则表示容器正常没有错误
[root@localhost ~]# docker inspect 容器名称
//查看容器的详细信息

exec和attach两者的区别:

  • 使用exec的方式进入容器,使用“exit”的方式退出容器后容器并不会停止;
  • 使用attach的方式进入容器,使用“exit”的方式退出容器后容器便会停止;可以使用Ctrl + p 或者 Ctrl + q 组合键的方式退出容器后,并不会关闭这个容器;
  • exec方式:进入容器是会产生新的进程;
  • attach方式:进入容器不会产生新的进程;

以下方式生产环境不建议使用:

[root@localhost ~]# docker ps -a -q | xargs docker start       //启动本机所有容器
[root@localhost ~]# docker ps -a -q | xargs docker stop        //停止本机所有容器
[root@localhost ~]# docker ps -a -q | xargs docker restart     //重新启动本机所有容器

[root@localhost ~]# docker pa -a -q | xargs docker rm -f         //删除所有容器,相当于“rm -rf /*”
[root@localhost ~]# docker rm 容器名称或容器ID             //删除容器(容器是停止的状态)
[root@localhost ~]# docker rm 容器名称或容器ID  -f         //强制删除容器(容器是运行的状态)

——————————未完待续————————————

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: