zoukankan      html  css  js  c++  java
  • docker 的基本命令

    查看命令

    • docker images 查看镜像
    • docker ps 查看正在运行的容器
    • docker ps -a 查看所有的容器
    • docker inspect container-name 记录着 Docker 容器的配置和状态信息的JSON文件支持过滤
    • docker top container-name 查看容器中的运行进程
    • docker port container-name 查看容器的映射端口
    • docker info | grep -i root 可以查看 docker 文件系统根目录

    删除命令

    *docker rm 删除容器
    *docker rmi 删除镜像

    进入容器执行

    • docker exec -it 【容器名】 bash
      • -i :即使没有附加也保持STDIN 打开 [-- interactive]
      • -t :分配一个伪终端 [--tty]

    exit退出

    启动容器

    • docker run 第一次启动容器 要暴露端口
    • -p 宿主机端口:容器应用端口 多个端口映射 [--publish]
    • -d(--detach) 创建守护式容器在后台运行 ,创建后不进入容器 ; -it 创建后会进入容器
    • -e 为容器设置环境变量
    • -v(--volume) 宿主机目录:容器目录 目录映射关系 。 可以批量修改通用设置
    • --restart always Docker重启,容器重启
    • docker start name 启动 name容器
    • docker stop name 停止容器 终止程序运行

    创建容器后添加参数

    docker container update --restart=always 容器名字

    修改docker容器的挂载路径

    • 停止所有的容器
    • 停止docker服务
    • 找到container 的hostconfig.json config.v2.json文件 并备份
    • 修改hostjson文件中Binds选项中冒号前的路径
    • 修改config.v2.json 中 MountPoints. Source的配置路径
    • 启动docker 服务 启动容器

    docker 网络及配置

    docker 网络模式 -net

    • -net=value指定网络模式
    • value 的类型
    • host
    • 和宿主机公用一个 network namespce
    • 容器使用宿主机的ip和端口 ,不虚拟自己的网卡、配置ip
    • none
    • 容器有自己的 network namespace
    • 容器没有网卡,ip,路由信息。需要手动配置
    • bridge
    • docker 默认网络设置
    • 每个容器都分配一个network namespace ,设置ip
    • docker启动时创建一个名为 docker0 的虚拟网桥,容器会连接到这个虚拟网桥 ifconfig 查看docker0网桥管理接口
    • container:NAME_or_ID
    • 指定和已经创建的容器共享一个network namespce
    • 容器不创建自己的网卡和ip 而是 共享指定容器的ip和端口范围
    • 文件系统和进程是隔离的
    • 案例1

    docker容器启动 网络配置-设置固定IP

    *原因 :

    • /etc/hosts, /etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部
    • docker 默认使用 briger模式,所以每次启动容器时,容器ip会发生变化。容器启动时需要重新构建新的/etc/hosts文件,否则会产生脏数据
    • 解决方案1 : 使用pipework 给容器设置ip
    • 宿主机下载pipework
    • git clone https://github.com/jpetazzo/pipework.git
    • cp pipework/pipework /usr/local/bin/
    • 安装网桥工具包bridge-utils yum -y install bridge-utils
    • 创建网桥并设置IP网段
    • brctl addbr br1
    • ip link set dev br1 up
    • ip addr add 192.168.10.1/24 dev br1
    • 启动一个容器 docker run -d --name=mysql mysql
    • 设置IP pipework br1 centos-ip 192.168.10.20/24
    • 解决方案2 : 参考 案例1
    • 解决方案3 :往/etc/hosts里添加hosts
    • --hostname :指定hostname
    • --ip:指定IP
    • --add-host :指定往/etc/hosts添加的host

    网桥常用命令

    brctl show  查看网桥状态  
    brctl delif <网桥名> <端口名>  卸载网桥上的端口  
    brctl delbr <网桥名>   删除网桥
    
    ifconfig   查看网桥网卡  
    ifconfig <网桥名> down   关闭网卡  
    

    容器配置文件

    一般在config文件下 如果 容器中没有安装vim 运行命令 apt-get update apt-get install vim

  • 相关阅读:
    I.MX6 Surfaceflinger 机制
    理解 Android Fragment
    RPi 2B DDNS 动态域名
    RPi 2B IPC webcam server
    理解 Android MVP 开发模式
    I.MX6 system.img unpack repack
    can't set android permissions
    VMware Ubuntu 共享文件夹
    解决oracle数据库连接不上的问题
    perfect-scrollbar示例
  • 原文地址:https://www.cnblogs.com/eatandsleep/p/12192393.html
Copyright © 2011-2022 走看看