docker实用命令--未完待续

痴心易碎 提交于 2019-12-07 08:39:20

docker实用命令

  1. images 相关:

    • docker images :列出本机所有已安装镜像
    • docker image打包
      由当前容器创建一个新的docker镜像命令为:docker commit CONTAINER new_image_name
      执行docker ps -a会看到本机中新多了一个名为new_image_name的镜像
      执行docker save new_image_name > /tmp/image.tar可将新创建的镜像打包为tar文件并存储于系统临时目录/tmp/下。

    • docker rmi image_name:删除镜像

  2. container 相关:

    • docker run : 基于某镜像创建一个新的容器并运行
      示例:
      docker run -it --name my_container -v /home/my/project/in/local/machine/project/:/home/repository/project --net=host my_image  /bin/bash

    以命令行交互方式从my_image创建并运行容器my_container, -v 为指定目录映射,结构为-v <本机代码目录>:<容器内目录>,-v可在同一命令行中多次出现,以指定多个目录映射。 –net=host 为指定端口映射类型。
    注:在macos下使用docker,–net=host无效,因为macos和linux环境的docker实现机制不同,在macos或windows系统上安装的docker依赖于其底层使用的virtual box等第三方虚拟机,所以若以–net=host的方式指定端口映射,实际是将docker内的端口全部映射到了其底层的virtual box虚拟机上,而非真正的本机。对于tcp连接可以使用-p 的方式指定要映射的端口或端口范围,udp连接不需要进行端口映射,外部其他机器设备即可访问docker内部。
    -p举例: docker run -it --name my_container -p 3900:3900 my_image_name /bin/bash
    docker run -it --name my_container -p 3900-4100:3900-4100 my_image_id /bin/bash
    第1 种方式为指定某个端口映射,第2种方式为指定端口映射范围。

    • docker ps :
      列出当前正在运行的容器
    • docker ps -a :
      列出本机所有容器,包含正在运行或已停止运行的容器。
    • docker exec -it container_name /bin/bash
      进行某个正在运行的容器内部,在通常情况下,在线上启动一个服务时,无须进入此容器内部,仅须在docker run 由镜像创建并启动某个容器,后面再跟上要传递(服务启动所须)的参数即可。而当需要在容器内部做某些修改,比如安装新的工具如ping等,则需要进入容器内部。

    • docker rm container_name 删除容器container_name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!