• docker命令详解


    镜像下载

    • 搜索镜像
    • docker search +镜像名字
      #docker search centos

    从Docker Hub中搜索符合条件的镜像
    在这里插入图片描述

    • 下载镜像
      #docker pull +镜像名字
      #docker pull centos
      在这里插入图片描述

    • 查看镜像
      #docker images
      在这里插入图片描述

    • 开启网络转发功能(默认为开启状态)若无开启,可以使用以下命令开启
      #vim /etc/sysctl.conf
      插入一条语句:net.ipv4.ip_forward=1
      #sysctl -p // 使得语句生效
      #cat /proc/sys/net/ipv4/ip_forward
      在这里插入图片描述
      若你的网络转发功能为开启,在连接docker时,会出现以下错误。导致docker容器中的镜像无法上网。
      在这里插入图片描述

    • docker 平台使用命令

    • 例1:运行一个 container并加载镜像centos,运行起来这个实例后,在实例中执行 /bin/bash命令
      docker 的参数:
      run 运行
      -t 以交互模式运行容器,
      -i 为容器重新分配一个伪输入终端
      [root@break du]# docker images //查看当前下载的镜像
      [root@break du]# docker run -it centos:latest /bin/bash //运行起来一个容器
      [root@73fb5e288c8d /]# exit //退出当前容器
      在这里插入图片描述
      在这里插入图片描述

    • 例2:在 container 中启动一个长久运行的进程,不断向stdin输出 hello。模拟一个后台运行的服务
      docker命令参数:
      -d :后台运行容器,并且返回容器ID
      -c :后面跟着待完成的命令
      [root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo hello ;sleep 1;done”
      在这里插入图片描述
      #docker logs c4765de4fa30
      在这里插入图片描述
      例3:杀死一个容器。 比如:杀死一个正在后台运行的容器
      [root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo hello ;sleep 1;done” //docker启动,模拟一个后台服务。
      973835e1a37adacedce8850e688b9f2a0c7cf16690e8b3cbd83685086e97d1b1
      [root@break du]# docker ps //列出所有正在运行中的镜像
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      973835e1a37a centos:latest “/bin/bash -c 'while…” 6 seconds ago Up 3 seconds jolly_davinci
      [root@break du]# docker kill 973835e1a37a //杀死一个正在后台运行的容器
      973835e1a37a
      [root@break du]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      在这里插入图片描述
      例4:启动、停止、重启 container容器实例
      [root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo firends;sleep 3;done” //模拟一个后台运行的服务
      de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
      [root@break du]# docker logs de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //查看日志
      firends
      firends
      [root@break du]# docker ps //列出正在运行的容器
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      de25c2541b2d centos:latest “/bin/bash -c 'while…” 20 seconds ago Up 19 seconds pedantic_colden
      [root@break du]# docker stop de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //停止一个容器
      de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
      [root@break du]# docker ps //列出运行中的容器
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      [root@break du]# docker start de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //启动一个容器
      de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
      [root@break du]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      de25c2541b2d centos:latest “/bin/bash -c 'while…” 55 seconds ago Up 5 seconds pedantic_colden
      [root@break du]# docker logs de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
      firends
      firends
      firends

    [root@break du]# docker rm -f de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //删除容器
    de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
    [root@break du]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    在这里插入图片描述
    在这里插入图片描述

    docker 镜像制作

    • 1docker commit +ID/name
      实例5:创建一个有apache的centos镜像
      1使用docker commit +容器ID+新建的镜像名字
      [root@break du]# docker run -it centos:latest /bin/bash
      [root@4b92f408db31 /]# yum -y install httpd

    在这里插入图片描述
    [root@break du]# docker commit 4b92f408db31 docker-centos:apache
    在这里插入图片描述
    在这里插入图片描述
    2使用Dockerfile来创建一个含有apache的镜像

    1. 创建工作目录

      mkdir /docker-build
      cd /docker-build
      touch Docker-file
      注意:make自动化编译时,需要Makefile文件,而自动化创建docker镜像时,需要Docker-file

    2. 编辑Dockerfile

      FROM centos:latest
      MAINTAINER break@du.cn
      RUN yum -y install httpd
      ADD start.sh /usr/local/bin/start.sh
      ADD index.html /var/www/html/index.html

    注释:
    FROM centos:latest # FROM 基于哪个镜像
    MAINTAINER break@du # MAINTAINER 镜像创建者
    RUN yum -y install httpd #RUN 安装软件用
    ADD start.sh /usr/local/bin/start.sh
    ADD index.html /var/www/html/index.html
    ADD 将文件src拷贝到新产生的镜像的文件系统对应的路径dest。所有拷贝到新镜像中的文件和文件夹权限为0755,uid和gid为0

    1. 创建start.sh和index.html

      echo “/usr/sbin/httpd-DFOREGROUND” > start.sh
      chmod a+x start.sh
      echo “my test images” > index.html

    2. 使用build来创建image

      docker build -t docker-centos:apacheruning ./

    在这里插入图片描述
    在这里插入图片描述

    docker发布

    方法:Save Image To TarBall
    方法1:保存 Image 到 tar 包——将刚才做好的镜像打包。
    语法:docker save -o 导出的镜像名.tar 本地镜像名:镜像标签

    例如:

    docker save -o docker-centos:running.tar docker-centos:apacheruning
    
    • 1

    在这里插入图片描述

    docker load -i docker-centos:apacherunning.tar //导入本地镜像

    docker优点

    1.一些优势和VM一样,但不是所有都一样。
    比VM小,比VM快,Docker容器的尺寸减小相比整个虚拟机大大简化了分布到云和从云分发时间和开销。Docker启动一个容器实例时间很短,一两秒就可以启动一个实例。
    2.对于在笔记本电脑,数据中心的虚拟机,以及任何的云上,运行相同的没有变化的应用程序,IT的发布速度更快。
    Docker是一个开放的平台,构建,发布和运行分布式应用程序。
    Docker使应用程序能够快速从组件组装和避免开发和生产环境之间的摩擦。
    3.您可以在部署在公司局域网或云或虚拟机上使用它。
    4.开发人员并不关心具体哪个Linux操作系统
    使用Docker,开发人员可以根据所有依赖关系构建相应的软件,针对他们所选择的操作系统。
    然后,在部署时一切是完全一样的,因为一切都在DockerImage的容器在其上运行。
    开发人员负责并且能够确保所有的相关性得到满足。
    5.Google,微软,亚马逊,IBM等都支持Docker。
    6.Docker支持Unix/Linux操作系统,也支持Windows或Mac

  • 相关阅读:
    elementUI 弹窗居中 并且tabs组件 tab-position=“left“时显示的样式优化
    Spring - xml实现
    Spring cloud负载均衡@LoadBalanced & LoadBalancerClient
    【ASP.NET Core】标记帮助器——替换元素名称
    SpringFramework之基于配置类管理Bean
    【菜菜的sklearn课堂笔记】支持向量机-关于predict_proba、decision_function
    一、重写muduo网络库之服务器编程及测试
    打印请求头
    BGP路由优选
    LeetCode刷题day48|198.打家劫舍、213.打家劫舍Ⅱ、337.打家劫舍Ⅲ
  • 原文地址:https://blog.csdn.net/m0_67392182/article/details/126327455