首页
在线工具
搜索
1
Kuboard与KubeSphere的区别:Kubernetes管理平台对比
2
ShardingSphere使用中的重点问题剖析
3
Flowable工作流引擎源码深度解析
4
用AI生成的原型设计稿效果还可以
5
如何将Virtualbox和VMware虚拟机相互转换
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
Search
标签搜索
Angular
Docker
Phabricator
SpringBoot
Java
Chrome
SpringSecurity
SpringCloud
DDD
Git
Mac
K8S
Kubernetes
ESLint
SSH
高并发
Eclipse
Javascript
Vim
Centos
Jonathan
累计撰写
86
篇文章
累计收到
0
条评论
首页
栏目
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
页面
搜索到
16
篇与
的结果
2016-10-10
使用nsenter进入Docker容器
使用nsenter进入Docker容器 Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSH Server的,安装配置SSHD,映射容器SSH端口,实在是麻烦。 我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Docker容器? 浏览了Docker的文档,我没有找到答案。还是要求助于无所不能的Google,万能的Google告诉我用nsenter吧。 在大多数Linux发行版中,util-linux包中含有nsenter.如果没有,你需要安装它. cd /tmp curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz \ | tar -zxf- cd util-linux-2.24 ./configure --without-ncurses make nsenter cp nsenter /usr/local/bin 使用shell脚本 docker-enter,将如下代码保存为docker-enter, chmod +x docker-enter #!/bin/sh if [ -e $(dirname "$0")/nsenter ]; then # with boot2docker, nsenter is not in the PATH but it is in the same folder NSENTER=$(dirname "$0")/nsenter else NSENTER=nsenter fi if [ -z "$1" ]; then echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]" echo "" echo "Enters the Docker CONTAINER and executes the specified COMMAND." echo "If COMMAND is not specified, runs an interactive shell in CONTAINER." else PID=$(docker inspect --format "{{.State.Pid}}" "$1") if [ -z "$PID" ]; then exit 1 fi shift OPTS="--target $PID --mount --uts --ipc --net --pid --" if [ -z "$1" ]; then # No command given. # Use su to clear all host environment variables except for TERM, # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH, # and start a login shell. "$NSENTER" $OPTS su - root else # Use env to clear all host environment variables. "$NSENTER" $OPTS env --ignore-environment -- "$@" fi fi 运行 docker-enter <container id> ,这样就进入到指定的容器中 退出 exit
2016年10月10日
2016-09-06
Centos rm -rf恢复删除的文件
centos rm -rf恢复删除的文件 Linux有时候执行了rm -rf等操作误删了文件绝对是一件可怕的事情,好在有一些解决的办法可以临时救急。这时我们就要用到一款叫做extundelete的工具了。 Linux下执行rm并不会真正删除,而是将inode节点中的扇区删除,同时释放数据块。在数据块被系统重新分配前,这部分数据还是可以找回来的。 网上说在删除文件后要立即unmount这个分区,这样做其实是为了让外界不再写入,我们也可以设置为readonly模式代替。当然,如果为了不影响其它应用的运行,也可以不做unmount。 好的,现在就该神器extundelete上场了。以CentOS6.5为例 依赖 yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel 安装 wget http://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 tar jxvf extundelete-0.2.4.tar.bz2 cd extundelte-0.2.4 ./configure make; make install 查找要恢复的驱动器名 df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 495844 64150 406094 14% /boot 运行恢复 默认恢复到当前目录下的RECOVERED_FILES目录中去 恢复单个文件 extundelete /dev/sdb1 --restore-file hosts 恢复一个目录 extundelete /dev/sdb1 --restore-files test/ 恢复整个分区 extundelete /dev/sdb1 –-restore-all 这个工具貌似支持EXT4文件系统,经过实际测试,restore-all比较好用,在初次删除后可以很好的恢复文件及目录结构,但是如果我在相同位置新建了相同的文件名或者目录名,就会恢复失败(找不到了)。而恢复单独的文件或者目录则没有成功,如果有成功的可以告诉我。
2016年09月06日
2016-08-11
Docker 基本语法与选项
Docker 基本语法与选项 基本语法 docker [OPTIONS] COMMAND [arg...] 选项 选项 描述 `-D=true false` -H, --host=[unix:///var/run/docker.sock] 在daemon模式下绑定的socket,通过一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd 来指定。 `--api-enable-cors=true false` -b="" 将容器挂载到一个已存在的网桥上。指定为'none'时则禁用容器的网络。 --bip="" 让动态创建的docker0采用给定的CIDR地址; 与-b选项互斥。 `-d=true false` --dns="" 让Docker使用给定的DNS服务器。 -g="" 指定Docker运行时的root路径。缺省为/var/lib/docker。 `--icc=true false` --ip="" 绑定端口时候的默认IP地址。缺省为0.0.0.0。 `--iptables=true false` --mtu=VALUE 指定容器网络的MTU。缺省为1500。 -p="" 指定daemon的PID文件路径。缺省为/var/run/docker.pid。 -s="" 强制Docker运行时使用给定的存储驱动。 `-v=true false` `--selinux-enabled=true false` 命令 Docker的命令可以采用docker-CMD或者docker CMD的方式执行。两者一致。 容器操作 docker attach 依附到一个正在运行的容器中。 docker cp 从容器中复制文件到宿主系统中。 docker diff 检查一个容器文件系统的修改。 docker exec 在运行中的容器内执行命令。 docker kill 关闭一个运行中的容器 (包括进程和所有资源)。 docker pause 暂停一个容器中的所有进程。 docker port 查找一个NAT到一个私有网口的公共口。 docker ps 列出容器。 docker restart 重启一个运行中的容器。 docker rm 删除给定的若干个容器。 docker start 启动一个容器。 docker stop 终止一个运行中的容器。 docker top 查看一个容器中的正在运行的进程信息。 docker unpause 将一个容器内所有的进程从暂停状态中恢复。 docker wait 阻塞直到一个容器终止,然后输出它的退出符。 镜像操作 docker build 从一个Dockerfile创建一个image。 docker commit 从一个容器的修改中创建一个新的image。 docker export 导出容器内容为一个tar包。 docker history 显示一个image的历史。 docker images 列出存在的image。 docker import 导入一个tar包来创建一个image。 docker load 从一个tar包中加载一个image。 docker pull 从一个Docker的注册服务器下拉一个image或仓库。 docker push 将一个image或者仓库推送到一个Docker的注册服务器。 docker rmi 删除给定的若干个image。 docker save 保存一个image为tar包文件。 docker tag 为一个image打标签。 其他命令 docker events 从服务端获取实时的事件。 docker info 显示一些相关的系统信息。 docker inspect 显示一个容器的底层具体信息。 docker logs 获取容器的log信息。 docker version 输出Docker的版本信息。 docker login 注册或登录到一个Docker的仓库服务器。 docker logout 从Docker的仓库服务器登出。 docker search 在Docker index中搜索一个image。
2016年08月11日
2016-08-11
Docker Info 出现错误Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
Docker Info 出现错误Cannot connect to the Docker daemon. Is 'docker -d' running on this host? docker -d 查看具体错误 如果出现:fatal error: unexpected signal during runtime execution 请安装device-mapper yum install device-mapper
2016年08月11日
2016-06-15
Windows下Phabricator Arcanist的安装与使用
Windows下Phabricator Arcanist的安装与使用 Arcanist是Phabricator提交代码评审的客户端工具,虽然可以直接在Differential界面手动创建Diff和Revision,但使用Arcanist会更加方便,特别是对于习惯命令行操作的开发者。 注意事项 如果遇到错误 ERR-CONDUIT-CORE: Invalid parameter information was passed to method 'differential.creatediff',请确保所有文件名均为英文。 安装步骤 1. 安装PHP 需要安装PHP 5.2或以上版本,推荐下载PHP 5.4 VC9 x86 Non Thread Safe版。具体步骤如下: 解压到指定目录:例如解压到 C:\PHP。 加入环境变量:将PHP安装目录(如 C:\PHP)添加到系统的 PATH 环境变量中。 配置php.ini: 复制 php.ini-development 文件为 php.ini。 在 php.ini 中取消以下几行的注释: extension_dir = "ext" extension=php_curl.dll extension=php_mbstring.dll 注册PHP文件类型(可选): 将 .php 扩展名添加到 PATHEXT 环境变量中。 关联 .php 文件类型: assoc .php=phpfile ftype phpfile="C:\PHP\php.exe" -f "%1" -- %~2 需要以管理员权限运行上述命令。 2. 安装SVN客户端 需要安装支持命令行的SVN客户端(不是TortoiseSVN)。可以从Subversion官方网站选择合适的版本,推荐安装CollabNet的Subversion 1.8.0,下载地址(需要注册):CollabNet Subversion。 测试安装是否成功 打开命令提示符并输入以下命令进行测试: C:> svn Type 'svn help' for usage.
2016年06月15日
1
2
3
4