docker命令大全:https://www.runoob.com/docker/docker-command-manual.html

docker官网下载地址:https://docs.docker.com/engine/install/centos/#installation-methods

 

要在CentOS上启动Docker引擎,请确保满足先决条件,然后安装Docker。

先决条件

操作系统要求

  1. 要安装Docker引擎,您需要维护的CentOS 7版本。不支持或测试存档版本。
  2. 必须启用centos extras存储库。默认情况下,此存储库已启用,但如果已禁用,则需要重新启用它。
  3. 建议使用overlay2存储驱动程序。

卸载旧版本

  1. yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-engine

旧版本的Docker称为Docker或Docker引擎。如果安装了这些程序,请卸载它们以及相关的依赖项。

/var/lib/docker/的内容(包括图像、容器、卷和网络)将被保留。Docker引擎包现在称为Docker ce。

使用存储库安装

首次在新主机上安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

安装yum utils包(它提供了yum config manager实用程序)并设置稳定的存储库。

  1. $ sudo yum install -y yum-utils
  2.  
  3. $ sudo yum-config-manager \
  4. --add-repo \
  5. https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装最新版本的Docker Enginecontainerd,或转到下一步安装特定版本:
  1. yum install docker-ce docker-ce-cli containerd.io

要安装特定版本的Docker Engine,请在repo中列出可用版本,然后选择并安装:

a、 列出并排序回购协议中可用的版本。此示例按版本号从高到低对结果进行排序,并被截断:

  1. $ yum list docker-ce --showduplicates | sort -r
  2.  
  3. docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
  4. docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
  5. docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
  6. docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

按其包名称(docker-ce))和版本字符串(第二列)安装特定版本,该字符串从第一个冒号(:)开始,直到第一个连字符,用连字符(—)分隔。例如docker-ce-18.09.1。

  1. yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

Docker已安装但未启动。docker组已创建,但没有用户添加到该组中。

启动Docker.

  1. systemctl start docker

运行hello world映像,验证Docker引擎是否正确安装。

  1. docker run hello-world

此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条信息性消息并退出。

Linux的安装后步骤

Docker守护进程绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字归用户root所有,其他用户只能使用sudo访问它。Docker守护进程始终作为根用户运行。

如果不想在docker命令前面加sudo,请创建一个名为docker的Unix组并向其中添加用户。当Docker守护进程启动时,它会创建一个Unix套接字

可由docker组成员访问。

创建docker组并添加用户:

创建docker组。

  1. sudo groupadd docker

将您的用户添加到docker组

  1. usermod -aG docker $USER

注销并重新登录,以便重新评估您的组成员资格。

如果在虚拟机上进行测试,则可能需要重新启动虚拟机以使更改生效。

在桌面Linux环境(如X Windows)中,完全注销会话,然后重新登录。

在Linux上,还可以运行以下命令来激活对组的更改:

  1. newgrp docker

确认您可以在不使用sudo的情况下运行docker命令

  1. docker run hello-world

如果在将用户添加到Docker组之前最初使用sudo运行Docker CLI命令,则可能会看到以下错误,这表明由于sudo命令的原因,~/.Docker/目录的创建权限不正确。

  1. WARNING: Error loading config file: /home/user/.docker/config.json -
  2. stat /home/user/.docker/config.json: permission denied

要解决此问题,请删除~/.docker/目录(该目录将自动重新创建,但任何自定义设置都将丢失),或者使用以下命令更改其所有权和权限:

  1. sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
  2. sudo chmod g+rwx "$HOME/.docker" -R

将Docker配置为启动时启动

使用docker日志读取远程日志驱动程序的容器日志

配置默认日志驱动程序

Docker提供了通过一系列日志驱动程序从主机上运行的所有容器收集和查看日志数据的功能。默认的日志驱动程序json file将日志数据写入主机文件系统上json格式的文件。随着时间的推移,这些日志文件的大小会扩大,从而导致磁盘资源的潜在耗尽。为了缓解这些问题,可以配置另一个日志驱动程序,如Splunk或Syslog,或者为默认驱动程序设置日志循环。如果配置了备用日志驱动程序,请参阅使用docker log读取远程日志驱动程序的容器日志

使用docker log读取远程日志驱动程序的容器日志

概述

在Docker Engine Enterprise 18.03之前,jsonfile和journald日志驱动程序支持使用docker logs读取容器日志。但是,许多第三方日志驱动程序不支持使用docker logs在本地读取日志,包括:

  1. syslog
  2. gelf
  3. fluentd
  4. awslogs
  5. splunk
  6. etwlogs
  7. gcplogs
  8. logentries

这在尝试以自动化和标准的方式收集日志数据时产生了多个问题。日志信息只能通过第三方解决方案以该第三方工具指定的格式访问和查看。

从Docker Engine Enterprise 18.03.1-ee-1开始,您可以使用docker logs读取容器日志,而不必考虑配置的日志驱动程序或插件。此功能有时称为双重日志记录,允许您使用docker logs 以一致的格式在本地读取容器日志,而不考虑使用的远程日志驱动程序,因为引擎配置将信息记录到“local”日志记录驱动程序。有关更多信息,请参阅配置默认日志驱动程序

先决条件

Docker Enterprise只支持双重日志记录,默认情况下从Engine Enterprise 18.03.1-ee-1开始启用。

用法

默认情况下启用双重日志记录。必须使用远程日志驱动程序配置docker守护程序或容器。

下面的示例显示了运行docker logs命令的结果,其中包含和不包含双重日志记录可用性:

没有双重记录功能:

当容器或dockerd配置了远程日志驱动程序(如splunk)时,尝试在本地读取容器日志时显示错误:

Step 1: Configure Docker daemon

  1. $ cat /etc/docker/daemon.json
  2. {
  3. "log-driver": "splunk",
  4. "log-opts": {
  5. ...
  6. }
  7. }

Step 2: Start the container

  1. docker run -d busybox --name testlog top

Step 3: Read the container logs

  1. $ docker logs 7d6ac83a89a0
  2. The docker logs command was not available for drivers other than json-file and journald.

具有双重记录功能:

要使用远程日志驱动程序(如splunk)配置容器或docker,请执行以下操作:

Step 1: Configure Docker daemon

  1. $ cat /etc/docker/daemon.json
  2. {
  3. "log-driver": "splunk",
  4. "log-opts": {
  5. ...
  6. }
  7. }

Step 2: Start the container

  1. docker run -d busybox --name testlog top

Step 3: Read the container logs

  1. $ docker logs 7d6ac83a89a0
  2. 2019-02-04T19:48:15.423Z [INFO] core: marked as sealed
  3. 2019-02-04T19:48:15.423Z [INFO] core: pre-seal teardown starting
  4. 2019-02-04T19:48:15.423Z [INFO] core: stopping cluster listeners
  5. 2019-02-04T19:48:15.423Z [INFO] core: shutting down forwarding rpc listeners
  6. 2019-02-04T19:48:15.423Z [INFO] core: forwarding rpc listeners stopped
  7. 2019-02-04T19:48:15.599Z [INFO] core: rpc listeners successfully shut down
  8. 2019-02-04T19:48:15.599Z [INFO] core: cluster listeners successfully shut down  

限制:

不能指定多个日志驱动程序。

如果使用远程发送日志的日志驱动程序或插件的容器突然出现“网络”问题,则不会对本地缓存进行“写入”。

如果写入日志驱动程序因任何原因(文件系统已满,写入权限已删除)失败,则缓存写入将失败并记录在守护程序日志中。未重试缓存的日志项。

在默认配置中,某些日志可能会从缓存中丢失,因为使用环形缓冲区来防止在文件写入缓慢时阻塞容器的stdio。当守护进程关闭时,管理员必须修复这些问题。

使用systemd单元文件配置远程访问

使用命令sudo systemctl edit docker.service在文本编辑器中打开docker.service的覆盖文件。

添加或修改以下行,替换您自己的值。

  1. [Service]
  2. ExecStart=
  3. ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375

Reload the systemctlconfiguration.

  1. systemctl daemon-reload

Restart Docker.

  1. systemctl restart docker.service

检查netstat的输出,确认dockerd正在监听配置的端口,以查看是否执行了更改。

  1. netstat -lntp | grep dockerd
  2. tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd

使用daemon.json配置远程访问

将/etc/docker/daemon.json中的hosts数组设置为连接到UNIX套接字和IP地址,如下所示:

  1. {
  2. "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
  3. }

Restart Docker.

检查netstat的输出,确认dockerd正在监听配置的端口,以查看是否执行了更改。

  1. sudo netstat -lntp | grep dockerd
  2. tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd

在Docker守护进程上启用IPv6

要在Docker守护进程上启用IPv6,请参阅启用IPv6支持

为Docker指定DNS服务器

配置文件的默认位置是/etc/docker/daemon.json。您可以使用--config file 参数更改配置文件的位置。下面的文档假设配置文件位于/etc/docker/daemon.json

1、创建或编辑Docker守护进程配置文件,默认为/etc/Docker/daemon.json文件,该文件控制Docker守护进程配置。

nano /etc/docker/daemon.json

2、添加一个或多个IP地址作为值的dns密钥。如果文件包含现有内容,则只需添加或编辑dns行。

  1. {
  2. "dns": ["8.8.8.8", "8.8.4.4"]
  3. }

如果您的内部DNS服务器无法解析公共IP地址,请至少包含一个可以解析的DNS服务器,以便您可以连接到Docker Hub,并且您的容器可以解析internet域名。

 

3、重新启动Docker守护进程

  1. service docker restart

4、验证Docker是否可以通过尝试提取映像来解析外部IP地址:

  1. docker pull hello-world

5、如有必要,请验证Docker容器是否可以通过ping来解析内部主机名。

  1. docker run --rm -it alpine ping -c4 <my_internal_host>
  2.  
  3. PING google.com (192.168.1.2): 56 data bytes
  4. 64 bytes from 192.168.1.2: seq=0 ttl=41 time=7.597 ms
  5. 64 bytes from 192.168.1.2: seq=1 ttl=41 time=7.635 ms
  6. 64 bytes from 192.168.1.2: seq=2 ttl=41 time=7.660 ms
  7. 64 bytes from 192.168.1.2: seq=3 ttl=41 time=7.677 ms

要禁用RHEL、CentOS或Fedora上的dnsmasq:

1、禁用dnsmasq服务:

  1. service dnsmasq stop
  2. sudo systemctl disable dnsmasq

2、使用Red Hat文档手动配置DNS服务器。

####################

  1. 卸载Docker Engine
    卸载Docker引擎、CLIContainerd包:
  1. yum remove docker-ce docker-ce-cli containerd.io

主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有图像、容器和卷,请执行以下操作:

  1. rm -rf /var/lib/docker

您必须手动删除任何已编辑的配置文件。

  1. docker --version \\查看docker版本

快捷键

  1. 退出:Ctrl-D or exit
  2. detachCtrl-P + Ctrl-Q

Namespace和Cgroup

  1. 1.Namespace 实现进程、网络、消息、文件系统、主机名的隔离。
  2. 2.Cgroup 实现对资源的配额和度量。
  3. 注:可以指定cpu个数,内存大小等

在 container 中启动一个长久运行的进程

  1. JOB=$(docker run -d centos /bin/sh -c "while true;do echo hello world; sleep 1;done")
  2. #-d 后台运行容器,并返回容器ID;   -c 待完成
  3. # echo $JOB

从一个容器中取日志:

  1. docker logs 容器的Name/ID
  2. # docker logs $JOB 查看日志:
  3. hello world

  

  1. docker search centos #搜索镜像:
  2. docker pull centos  #下载官方的 CentOS 镜像到本地
  3. docker images    #确认 CentOS 镜像已经被获取
  4. docker load < c7moban.tar \\手动加载镜像。

创建容器

  1. docker run -i -t --name centos7 -h linuxws -p 22:22 centos /bin/bash #创建一个 Docker 容器
  2. -i 交互式操作
  3. -t 分配一个终端;
  4. --name 容器的名字
  5. -h 容器的主机名
  6. -p:映射端口,前面80是虚拟机的端口

强制删除镜像

  1. docker rm -f web01

docker 选项

  1. -b, --bridge="" # 桥接网络,将容器附加到预先存在的网络桥上(Attach containers to a pre-existing network bridge)
  2. -g, --graph="/var/lib/docker" # 容器运行的根目录路径
  3. --ip-forward=true   # 开启转发
  4. --iptables=true    # 添加对应 iptables 规则
  5. docker images -q    #显示短容器ID

docker 命令

  1. cp # 从容器中拷贝指定文件或者目录到宿主机中       
  2. logs # 输出当前容器日志信息
  3. port # 查看映射端口对应的容器内部源端口          
  4. restart # 重启运行的容器
  5. rm # 移除一个或者多个容器                
  6. rmi # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
  7. save # 保存一个镜像为一个 tar 包[对应 load]       
  8. build # 通过 Dockerfile 定制镜像
  9. history #显示镜像制作的过程,相当于dockfile       
  10. load #与下面的save命令相对应,将下面sava命令打包的镜像通过load命令导入
  11. images #列出本机的所有镜像              
  12. import #用tar文件新建一个镜像,与export命令相对应 docker import mysqldb.tar mysql:v1
  13. logs #用于查看容器的日志               
  14. ps #列出所有容器,其中docker ps用于查看正在运行的容器,ps -a则用于查看所有容器。
  15. pull #从docker hub中下载镜像             
  16. rename #更改容器的名字
  17. restart #重启容器                    
  18. search #从Docker Hub中搜索镜像
  19. rmi #删除镜像                    
  20. run #创建并启动容器
  21. stats #动态显示容器的资源消耗情况,包括:CPU、内存、网络I/O      
  22. tag #对镜像进行重命名
  23. top #查看容器中正在运行的进程                 
  24. unpause #恢复容器内暂停的进程,与pause参数相对应
  25. version #查看docker的版本

登录Docker Hub

  1. [root@localhost ~]# docker login  #login:,需到官网注册账号
  2. Username: ivictor
  3. Password:

上传本地镜像到Docker Hub

  1. # docker push ivictor/centos:v1  #前提是登录docker hub

退出登录Docker Hub

  1. [root@localhost ~]# docker logout  #退出登录
  2. Remove login credentials for https://index.docker.io/v1/

在宿主机和容器之间相互COPY文件

  1. docker cp [OPTIONS] CONTAINER:PATH LOCALPATH
  2. docker cp [OPTIONS] LOCALPATH CONTAINER:PATH

查看容器内发生改变的文件,以mysql容器为例

  1. [root@localhost ~]# docker diff mysqldb
  2. C /root
  3. A /root/.bash_history

不难看出,C对应的均是目录,A对应的均是文件

实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等。

  1. [root@localhost ~]# docker events
  2. 2015-09-08T17:40:13.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) create
  3. 2015-09-08T17:40:14.000000000+08:00 d2a2ef5ddb90b505acaf6b59ab43eecf7eddbd3e71f36572436c34dc0763db79: (from wordpress) die
  4. 2015-09-08T17:42:10.000000000+08:00 839866a338db6dd626fa8eabeef53a839e4d2e2eb16ebd89679aa722c4caa5f7: (from mysql) start

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
touche/centos6 latest 139b09783af3 13 months ago 577MB

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]#

查看docker的系统信息

  1. # docker info
  2. Containers: 3 --当前有3个容器
  3. Images: 298
  4. Storage Driver: devicemapper
  5. Pool Name: docker-253:0-34402623-pool
  6. Pool Blocksize: 65.54 kB
  7. Backing Filesystem: xfs
  8. Data file: /dev/loop0
  9. Metadata file: /dev/loop1
  10. Data Space Used: 8.677 GB --对应的是下面Data loop file大小
  11. Data Space Total: 107.4 GB
  12. Data Space Available: 5.737 GB
  13. Metadata Space Used: 13.4 MB --对应的是下面Metadata loop file大小
  14. Metadata Space Total: 2.147 GB
  15. Metadata Space Available: 2.134 GB

在运行的容器中执行命令

  1. docker exec -d cc touch 123 #后台型任务其中,cc是容器名
  2. docker exec -i -t cc /bin/bash #交互型任务:
  3. -d :分离模式: 在后台运行
  4. -i :即使没有附加也保持STDIN(标准输入)打开
  5. -t :分配一个伪终端

将容器的文件系统打包成tar文件,有两种方式:

  1. docker export -o mysqldb1.tar mysqldb
  2. docker export mysqldb > mysqldb.tar

docker pause

  1. pause --暂停容器内的所有进程,
  2. 此时,通过docker stats可以观察到此时的资源使用情况是固定不变的,
  3. 通过docker logs -f也观察不到日志的进一步输出。

输出容器端口与宿主机端口的映射情况

  1. docker port blog
  2. 80/tcp -> 0.0.0.0:80 #容器blog的内部端口80映射到宿主机的80端口

启动、停止容器

  1. docker start container #启动容器container
  2. docker stop container #停止容器container
  3. docker restart container #重启容器container

杀掉运行中的容器

  1. docker kill -s KILL mynginx
  2. -s #向容器发送一个信号

删除容器,无法删除运行中的容器,必须先用docker stop或docker kill使其停止。

  1. docker rm -f `docker ps -a -q` #一次性删除所有容器:
  2. -f  #强制删除
  3. -q  #指的是只列出容器的ID

将镜像打包,与上面的load命令相对应

  1. docker save -o nginx.tar nginx

暂停和继续容器

  1. docker unpause CONTAINER # 继续暂停的容器
  2. docker pause CONTAINER  # 暂停一个容器,方便 commit

提交指定容器为镜像

  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 默认 commit 是暂停状态
  2.   -a, --author=""
  3.   -m, --message="" 提交信息
  4.   -p, --pause=true

Docker 端口映射

通过容器 id 获取 ip

  1. sudo docker inspect <container_id> | grep IPAddress | cut -d "’ -f 4

容器的 ip 是本地系统分配的,其他主机访问不到该容器的端口。容器每次启动时ip都会改变。

自动映射端口

  1. docker run -t -P --expose 22 --name server ubuntu:14.04
  2. -P  #随机端口映射,容器内部端口随机映射到主机的高端口
  3. --expose  #指定对外提供服务的端口
  4. -i #以交互模式运行容器,通常与 -t 同时使用;
  5. -t #为容器重新分配一个伪输入终端,通常与 -i 同时使用;

实例二:

  1. docker run -P -d nginx:latest
  2. #使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口

映射的端口将会从没有使用的端口池中 (49000..49900) 自动选择,

通过docker ps、

docker inspect <container_id>或者

docker port <container_id> <port>确定具体的绑定信息。

绑定端口到指定接口

--dns-search=DOMAIN 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS 不仅搜索host,还会搜索 host.example.com 。 注意:如果没有上述最后 2 个选项, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。

--link=CONTAINER_NAME:ALIAS        \\添加一个其他容器的主机名到 /etc/hosts 文件中。

-p   指定端口映射,格式为:宿主机端口:容器端口

  1. 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
  2. docker run -p 80:80 -v /data:/data -d nginx:latest
  3.  
  4. 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 80 端口上。
  5. docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
  6.  
  7. 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
  8. runoob@runoob:~$ docker run -it nginx:latest /bin/bash
  9. root@b8573233d675:/#
  10.  
  11. 绑定UDP端口
    docker run -p 127.0.0.1:53:5353/udp

进入容器后:

  1. yum grouplist
  2. yum -y groupinstall "Minimal Install"
  3. [root@cd05639b3f5c /]# exit #断开与容器的连接 exit
  4. [root@localhost ~]# docker ps #显示正在运行容器

解决方法:

ntpdate cn.pool.ntp.org               #同步一下时间

docker安装及概述的更多相关文章

  1. Centos +Docker 安装及仓库使用概述

    ​1. Linux 系统学习Docker安装篇 这里我使用的Centos系统 安装Docker yum命令说明 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yu ...

  2. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  3. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  4. Docker 安装和基础用法

    理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...

  5. 使用docker安装myql/redis等软件

    使用docker安装myql/redis等软件 概述 基本命令 安装mysql 安装redis 概述 在开发时经常需要安装各种软件,有时甚至为了验证一个命令不得不安装配置一个缓存.数据库.MQ等,耽误 ...

  6. 利用Docker安装Web前端性能测试工具Sitespeed.io

    目录结构 一.Sitespeed.io概述 1.Sitespeed.io简介 2.Sitespeed.io使用场景 二.Sitespeed.io的安装和使用 1.安装Sitespeed.io 2.连接 ...

  7. docker 安装jenkins 发布 asp.net core 2.0

    安装Docker 其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再 ...

  8. Docker安装Web前端性能测试工具Sitespeed.io

    一.Sitespeed.io概述 1.Sitespeed.io简介 Sitespeed.io:是一款开源的Web性能测试工具,用来衡量Web网站的综合性能,帮助开发和测试人员分析网页的加载速度和渲染性 ...

  9. 【开发工具 docker】值得学习的应用容器引擎docker安装

    概述: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何 ...

随机推荐

  1. HTML语义化理解

    对所要表达的事物或者思想使用正确的标签. 例如:标题用<h > 来表示. 在<table>中加入summary的简介.   在<a>中加入title 在<im ...

  2. hadoop 安装配置

    1.伪分布式搭建: 步骤参考: http://wenku.baidu.com/link?url=N_Sc7dqaO5HB47SmhntYZQI2tvvAjYt0mWT0fx28FDSMRYKTLUTc ...

  3. bzoj5093: [Lydsy1711月赛]图的价值

    不难想到考虑每个点的贡献,ans=n*sigema(1~n)i C(n-1,i)*(2^C(n-1,2))*i^k 直接套第二类斯特林拆柿子即可.提示:sigema(1~n)i C(n,i)*C(i, ...

  4. 使用aspnet_regiis.exe重新注册.NET Framework

    cd  C:\Windows\Microsoft.NET\Framework64\v4.0.30319  aspnet_regiis.exe -i     重新安装IIS以后,需要用aspnet_re ...

  5. 对于glut和freeglut的一点比较和在VS2013上的配置问题

    先大概说一下glut.h和freeglut.h 首先要知道openGL是只提供绘图,不管窗口的,所以你需要给它一个绘图的区域(openGL能跨平台也与此有些关系) glut.h和freeglut.h都 ...

  6. Hadoop- 分布式资源管理YARN架构讲解

    YARN是分布式资源管理,每一台机器都要去管理该台计算机的资源,Yarn负责为MapReduce程序分配运算硬件资源.每一台机器的管理者叫 NodeManager,整个集群的管理者管理着整个集群的No ...

  7. BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1607 题意: 给你n个数,问你除a[i]之外,有多少个数是a[i]的约数. 题解: ans ...

  8. Android SDK和NDK

    NDK是用来给安卓手机开发软件用的,但是和SDK不同的是它用的是C语言,而SDK用的是Java语言.NDK开发的软件在安卓的环境里是直接运行的,一般只能在特定的CPU指令集的机器上运行,而且C语言可以 ...

  9. hdu-5784 How Many Triangles(计算几何+极角排序)

    题目链接: How Many Triangles Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  10. 【Lintcode】 035.Reverse Linked List

    题目: Reverse a linked list. Example For linked list 1->2->3, the reversed linked list is 3-> ...