zoukankan      html  css  js  c++  java
  • Docker容器入门-基本命令的使用

    目前容器技术使用相当广泛
    不会或者没有使用过容器感觉都不像是个搞技术的
    所以,我也就docker相关内容做一个整理
    只有不断的学习,才能保持自己的竞争力

    什么是容器?

    容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。

    为什么使用容器?

    容器使软件具备了超强的可移植能力

    怎样使用容器?

    容器常用的基本操作:

    docker stopstart
    estart [container_idcontainer_name]  // 停止、启动、重启容器
    docker kill [container_idcontainer_name]                // 强制停止
    docker pauseunpause [container_idcontainer_name]       // 暂停、取消暂停
    docker rm [container_idcontainer_name]     // 删除容器
    docker rmi [image_idimage_name]            // 删除镜像
    // 按条件查找容器id, -a 所有 -q 只显示id -f filter过滤
    docker ps -aq -f status=running
    docker ps -aq -f status=exited
    docker ps -aq -f status=created
    // 查看容器日志
    docker logs -f <container>
    // 进入shell
    docker exec -it <container> sh
    // 进入bash
    docker exec -it <container> /bin/bash
    

    限制容器内存使用:-m 或 --memory 设置内存的使用限额、--memory-swap 设置内存+swap的使用限额

    docker run -m 200M --memory-swap=300M ubuntu
    

    限制容器CPU使用:-c 或 --cpu-shares 设置权重、 --cpu 设置工作线程数量

    docker run -it -c 1024 progrium/stress --cpu 1
    

    限制容器IO的使用:--blkio-weight 设置block IO的优先级

    docker run -it --name my_ubuntu --blkio-weight 600 ubuntu
    

    创建自定义IP网段的容器网络:

    docker network create --driver bridge --subnet 172.22.22.0/24 --gateway 172.22.22.1 my_net
    

    启动时给容器指定一个静态ip:只有使用 --subnet 创建的网络才能指定静态ip

    docker run -it --network=my_net --ip 172.22.22.22 busybox
    

    查看容器网络:

    docker network ls
    

    共享网络栈:使用 --network=container:web1 指定 jointed 容器为 web1

    将主机上的目录或者文件挂载到容器:使用 -v : 将其 mount 到容器

    docker run -d -p 80:80 -v ~/htdocs:/usr/local/apache2/htdocs httpd
    docker run -d -p 80:80 -v ~/htdocs:/usr/local/apache2/htdocs:ro httpd  // ro设置只读权限,容器不能对该文件做修改
    

    使用volume container共享容器数据:通过 --volumes-from 使用 vc_data 这个 volume container

    1.创建一个vc:
    docker create --name vc_data -v ~/htdocs:/usr/local/apache2/htdocs -v /other/useful/tools busybox
    2.共享vc:
    docker run --name web1 -d -p 80 --volumes-from vc_data httpd
    docker run --name web2 -d -p 80 --volumes-from vc_data httpd
    

    docker删除bind mount:只能由host负责删除
    docker删除docker managed volume:删除容器时加上 -v 可以删除容器依赖的volume
    如果删除容易时,没有加-v删除依赖volume,也可以用:docker volume rm <volume_id>

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/Trainoo/p/11108380.html
Copyright © 2011-2022 走看看