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

  • 相关阅读:
    牛客网-湘潭大学校赛重现H题 (线段树 染色问题)
    bzoj 2243: [SDOI2011]染色 (树链剖分+线段树 区间合并)
    SPOJ QTREE2 (LCA
    Neo4j-Cypher
    MySQL避免插入重复记录:唯一性约束
    python ftp教程
    Neo4j 导入 CSV 文件
    jupyter notebook 安装 jupyter_contrib_nbextension
    python 性能分析(时间,空间)之 line_profiler 模块 ,memory_profiler的使用
    hive 自定义函数
  • 原文地址:https://www.cnblogs.com/eatandsleep/p/12192393.html
Copyright © 2011-2022 走看看