zoukankan      html  css  js  c++  java
  • Docker 操作记录

    Docker 容器信息

    docker info 查看信息

    docker 更改镜像目录 方式:
    1、配置文件修改

    # cat /etc/sysconfig/docker |grep -v ^# |grep -v ^$
    other_args="--graph=/data/docker"
    DOCKER_CERT_PATH=/etc/docker
    DOCKER_NOWARN_KERNEL_VERSION=1

    建立 lvm 逻辑分区 便于扩展

    # lvcreate -L 2T lv_docker vg_home
    # mkfs.ext4 /dev/vg_home/lv__docker
    # mkdir /mnt/docker
    # mount /dev/vg_home/lv_docker /mnt/docker/
    # service docker stop 
    # cp -r /var/lib/docker/* /mtn/docker
    # mount /dev/vg_home/lv_docker /var/lib/docker 
    # cat /etc/fstab
    --- 
    /dev/vg_home/lv_docker /var/lib/docker ext4 defaults 0 0

    Docker 启动:

    # /etc/init.d/docker start

    Docker 镜像

    # docker images 
    # docker ps -a  执行记录 所有容器状态
    
    docker ps -a 查看所有容器 的状态;
    查看终止 的容器 ID 信息。
    docker ps -a -q

     删除 镜像 容器

    删除镜像 IMAGE ID
    docker rmi 787a2e217a1e
    rm 删除容器 rmi 删除镜像

    软链接 可能会影响性能

    # cp -rf docker docker.bak
    # cp -rf docker /<my_new_location>/
    # ln -s /<my_new_location>/docker docker

    2、启动指定路径 

    service docker start
    docker images 查看镜像列表;
    docker ps 状态
    docker run - 运行一个容器
    -t - 分配一个(伪)tty (link is external)
    -i - 交互模式 (so we can interact with it)
    ubuntu:14.04 - 使用 ubuntu 基础镜像 14.04
    /bin/bash - 运行命令 bash shell
    
    docker ps :列出当前所有正在运行的container
    docker ps -l :列出最近一次启动的container
    docker ps -a :列出所有的container(包含历史,即运行过的container)
    docker ps -q :列出最近一次运行的container ID

    Docker 端口映射:

    # docker run -d P sevrer
    # docker run -d p port:port server

    -d 后台运行;
    -P -p 标识来指定容器端口绑定到主机端口。 两种方式的区别是:
    -P : 是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。

    默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp

    端口绑定检查: [ name ]
    docker port website

    容器两种方式进行启动

    一种是基于创建一个容器并启动
    docker create 
    docker start 
    另外一种是状态下的启动
    docker start

    启动 容器报错问题;结束容器进程,清除网络映射。重启网卡 再起docker 启容器。

    pkill docker
    # 关闭进程 iptables
    -t nat -F
    # 清除 nat 规则 ifconfig docker0 down
    # 关闭网卡 brctl delbr docker0
    # 删除 虚拟网桥
    # 最后重启docker后解决

    查看WEB 应用程序日志

    docker logs [ID或者name] 可以查看容器内部的标准输出。
    docker logs name

    查看容器进程:

    docker top webstie

    docker inspect 查看Docker 的底层信息;

    docker inspect website 

    使用 docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

    Docker 批量操作

    docker中 启动所有的容器命令
    docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
    
    docker中 关闭所有的容器命令
    docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
    
    docker中 删除所有的容器命令
    docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
    
    docker中 删除所有的镜像
    docker rmi $(docker images | awk '{print $3}' |tail -n +2)

    获取新镜像 pull

    docker pull ubuntu:14.04
    
    使用centos镜像进入一个容器
    # docker run -t -i centos
    // 但是多个窗口的时候会显示同步,

    进入容器有多种方式:

    docker attach Docker 自带命令;
    
    docker attack "docker_name"
    
    exec 命令 ID 或者 name 
    docker exec -ti 2a11727d5c2d /bin/bash
    
    nsenter 工具

    安装报错 ;

    docker安装提示需要升级 selinux-policy 等安装包?
    centos 7 更换源;
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    目录挂载:

    Docker 的 bug 
    解决方式是先找出没有 umount 的路径
    cat /proc/mounts | grep "mapper/docker" | awk '{print $2}'

    更改运行容器的名称;

    docker ps 查看运行的容器;
    docker rename pensive_feynman web_tes

    docker rm 可以删除容器 ;但是删除之前必须是 stop 状态;

    docker rm ubuntu:14.04
    docker rm centos:6.7

    启动运行 nginx 容器示例:

    docker run -d nginx 后台运行 ;
    
    docker exec :在运行的容器中执行命令
    -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端
    docker exec
    -it mynginx /bin/sh

    docker commit 编辑镜像

    从容器创建一个新的镜像;
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    docker commit -a "name" -m "my-tomcat" website my-tomcat:v2

    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停;

    容器上传下载 拷贝文件 [ cp ]

    上传测试文件:
    docker cp start-kube.sh website:/root/

    下载文件 docker cp
    docker cp website:/test.html /root/

    进入容器:
    docker exec -it website /bin/bash

    查看文件:

    diff 查看容器的目录结构;

    docker diff ID/NAME
    
    # docker diff webstie

    docker 操作记录:

    下载一个 镜像
    docker pull images
    
    运行一个容器
    docker run -d -p 0.0.0.0:18080:8080 images
    -d:让容器在后台运行。
    -P:将容器内部使用的网络端口映射到我们使用的主机上
    -p:指定端口
    --name name12
    docker run -d -p 0.0.0.0:18080:8080 --name rancher12 rancher/server
    
    docker Port ID 查看端口;
    docker logs -f ID 查看运行日志;
    检查WEB应用程序
    docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
    docker rm 命令来删除不需要的容器
  • 相关阅读:
    java工程师面试总结
    多线程面试题
    冒个泡
    给大家简单介绍一下:Elasticsearch
    单点登录
    (jQuery)Cookie记住用户名和密码
    我们需要循序渐进的代码重构
    Java序列化(Serialization)的理解
    Java对象序列化
    【武】做一个有自控力的人,开始你的时间规划吧!
  • 原文地址:https://www.cnblogs.com/sharesdk/p/9431935.html
Copyright © 2011-2022 走看看