美文网首页Docker容器
3.docker常用命令

3.docker常用命令

作者: fougert | 来源:发表于2019-11-13 21:07 被阅读0次
  1. 镜像命令
docker images :列出本地的镜像
参数:
  -a 列出本地所有的镜像,含中间映射层
  -q 只显示镜像id
  --digests 显示镜像的摘要信息
  --no -trunc 显示完整的镜像信息

docekr search xxx 从远程仓库查找镜像
参数:
    --no-trunc :显示完整的镜像描述  docker search --no-trunc tomcat
    -s:列出收藏数不小于指定值的镜像 docker -s 30 tomcat
    -- automated:只列出automated build类型的镜像
   
docekr pull xxx 下载镜像
    docker pull tomcat ==> docker pull tomcat:latest
    docekr pull tomcat:3.2 

docker rmi 镜像:版本号 删除镜像
参数:
     -f:强制删除

docker rmi -f ID删除单个
docker rmi -f 镜像名:TAG 
  
  1. 容器命令
新建并启动容器:
docker run [options] IMAGE [command][ARG...]  
参数:
    --name="容器新名字":为容器指定一个名称
    -d:后台运行容器,并返回容器id,即启动守护式进程
    -i:以交互模式运行容器,通常与-t一起使用
    -t:为容器重新分配一个伪容器终端,通常与-i一起使用
    -P(大写):随机端口映射
    -p:指定端口映射,有以下四种形式
        ip:hostPort:containerPort
        ip::containerPort
        hostPort:containerPort
        containerPort
docker run -it --name myCentos centos  新建启动交互式容器

列出所有正在运行的容器:
docker ps [options]  
docker ps 默认显示当前正在运行的容器
参数:
    -a:列出当前所有正在运行的容器+历史上运行过的
    -l:显示最近创建的容器
    -n:显示最近n个创建的容器
    -q:静默模式,只显示容器编号
    --no-trunc:不截断输出
docker ps -aq 列出当前所有正在运行的容器+历史上运行过的容器ID 

docekr rm $(docker ps -aq) 组合命令,删除所有的容器(类似于sql的子查询)

退出容器:
1.exit 容器停止退出
2.ctrl+p+Q 容器不停止退出

启动容器:
docker start 容器ID或者容器名

重启容器:
docker restart 容器ID或者容器名

停止容器:
docker stop 容器ID或者容器名

强制停止容器:
docker kill 容器ID或者容器名

删除已停止的容器:
docker rm 容器ID或者容器名
docker rm -f 容器ID或者容器名 强制删除容器(没有停止也可以删除)

删除多个容器:
docker rm $(docker ps -a -q)   
docker ps -a -q | xarhs docker rm 

启动守护式容器:
docker run -d 容器名 
    docker run -d centos以后台模式启动centos,docker ps进行查看,会发现容器已经退出,这是因为Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,以nginx为例,正常情况下,我们配置启动服务只需要启动相应的service即可,service nginx start,但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器启动后,会立即自杀,因为觉得没事可做了。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。

    docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"  添加shell脚本,每两秒打印输出,这样以后台运行的容器不会退出



查看容器日志:
docker logs -f -t --tail 容器ID 
参数:
    -t:加入时间戳
    -f:跟随最新的日志打印
    --tail 数字  显示最后多少条

查看容器内的进程:
docker top 容器ID

查看容器内部细节:
docker inspect 容器ID 

进入正在运行的容器并以命令行交互:
首先启动容器并启动shell端,docker run -it centos /bin/bash,ctrl+p+Q  退出容器且不停止容器
    1、doker exec -it 容器ID (bashShell) ls -l   
    2、重新进入容器 docker attach 容器ID
 区别:
    attach:直接进入容器启动命令的终端,不会启动新的进程
    exec:是在容器中打开新的终端,并且可以启动新的进程,不进入容器,在宿主机上进行操作

docker exec -it 容器ID /bin/bash 进入容器,然后进行操作

从容器内拷贝文件到主机上:
docker cp 容器ID:xx路径 本机路径

相关文章

网友评论

    本文标题:3.docker常用命令

    本文链接:https://www.haomeiwen.com/subject/pnhkictx.html