docker的简单使用

docker安装教程:https://blog.csdn.net/qq_41901122/article/details/101110162

1. 镜像命令

1.1 查看本地镜像

1.1.1 docker images

1.1.2 docker image ls

1.2 下载镜像

docker pull 名字

1.3 删除镜像

1.4 搜索镜像

1.4.1 docker search 名字

参数--filter

  • 利用:如下显示stars不低于100的镜像

     docker search centos  --filter=stars=100
    

1.5 构建镜像

1.5.1 根据运行中的容器生成新的镜像

  • 原理:是将容器运行时的读写层变为只读层,作为镜像的一个新层

  • 使用过程:

    • 通过已经镜像运行容器,进入容器内

      docker run  -it --name mycentos8 centos:centos8  /bin/bash 
      
    • 进入容器修改相关内容,比如添加某个软件或者某个功能

    • 通过docker commit提交修改生成镜像

      docker commit -m "Add openssh server"  -a "hwadee"  -c "EXPOSE 22"  --change='CMD ["/sbin/sshd","-D"]'   3ce01aadf05e  centos8:ssh 
      
      • -m: 提交的描述信息
      • -a: 指定镜像作者
      • e218edb10161:容器 ID
      • runoob/ubuntu:v2: 指定要创建的目标镜像名
    • 使用新镜像生成容器或测试

      docker run -itd  -p 2222:22  centos8:ssh
      
    • 将新镜像push到容器仓库

  • 缺点:制作的透明性较差,如果多次修改可能会分层较多导致镜像臃肿,
    体积较大,影响运行效率。一般不推荐使用。

1.5.2 通过Dockerfile来制作镜像

详细链接:https://www.jianshu.com/p/eb4064392b3e

2. 容器命令

2.1 查看容器:docker ps

默认是查看运行中的容器

  • -a:查看所有状态的容器

    docker ps -a
    
  • -q:只查看容器的ID

    docker ps -q
    

2.2 运行容器:docker run

命令格式

docker run -参数 镜像名:tag 命令

如果镜像名是唯一的,不指定tag也可以

  • 如下是使用ubuntu镜像启动容器,并且进入交互式界面

    docker run -it ubuntu /bin/bash
    
    • -i:交互式操作
    • -t:终端
  • 如下是在上述的基础上后台运行容器

    docker run -itd ubuntu /bin/bash
    
    • -d:Run container in background and print container ID

2.3 停止容器:docker stop

  • 使用:

    docker stop 容器ID
    

2.4 重启容器:docker restart

  • 使用:

    docker restart 容器ID
    

2.5 进入容器

2.5.1 docker attach

  • 使用:

    docker attach 容器ID
    
  • 缺点:如果从这个容器退出,会导致容器的停止

2.5.2 docker exec

  • 命令格式:

    docker exec -it 容器ID /bin/bash
    

2.6 导出容器:docker export

  • 使用:

    docker export 容器ID > xxx.tar
    

2.7 导入容器:docker import

  • 使用:

    cat docker/xxx.tar | docker import - xxx:v1 
    

    此外,也可以通过指定的URL来导入

    docker import http://example.com/exampleimage.tgz example/imagerepo
    
  • 然后进行拷贝 ,注意:执行docker命令时一定要退出容器,否则报错

    从容器中拷出来是一样的,docker cp 后面的位置调换一下即可

    // docker cp 本地路径 容器长ID:容器路径

    //Docker CP local path container long ID: container path

    docker cp /usr/local/test.txt 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/usr/local/tomcat/webapps test.txt
    
    docker cp /usr/local/test.txt 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/usr/local/tomcat/webapps test.txt
    

2.8 查看容器端口情况

  • 使用:

    docker port 容器ID
    

3.容器内命令

3.1 查看容器内web日志

  • 使用:

    docker logs -f 容器ID
    

3.2 查看容器内部运行的进程

  • 使用:

    docker top 容器ID
    

3.3 查看Docker的底层信息

  • 使用:

    docker inspect 容器ID
    
posted @   W3w  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示