一、常用Linux 命令
ls -a(同时列出隐含文件), -l(输出一个比较完整的格式,除每个文件名外,增加显示文件
类型、权限、硬链接数、所有者名、组名、大小(byte)、及时间信息-----简化为 ll)
mkdir 新建目录 例:mkdir test 命令会在当前目录下建立一个名为“test”的新目录
touch 创建文件 例:touch test/readme.txt 在 test 目录下创建 readme.txt文件
cd 切换目录 cd /. 到根目录 cd .. 上一级目录 cd /hahaha/hahaha 到指定目录
pwd 显示当前目录
mv 移动/重命名(加上 -i 参数询问是否覆盖) mv hello rock/ 移动到rock目录下
mv hello rock 重命名为rock
cp 拷贝 (加上 -i 参数询问是否覆盖,-r 参数递归调用)
cp -ir test/ workspace"(递归复制 test 目录到 workpace 目录下并在覆盖时提示)
rm 删除 (加上 -i 参数确认提示,-r 参数递归调用)
rm -ir test/ 递归删除test目录及其子目录并询问
wget url 下载文件到当前目录
sudo 暂时获取超级用户权限(有默认时长)加上 -i 参数 没有时间限制,输入 exit或logout 退出
su 账户名 切换到某某用户模式,没有时间限制
ZIP 工具:
压缩文件 zip target.zip filename
压缩文件夹 zip -r target.zip dir -r 参数表示递归压缩子目录
解压 unzip target.zip
tar 工具:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用
其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
例:tar -xvf file.tar //解压 tar包
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java //解压jdk到指定文件夹
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用
compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
vim 编辑器: vim test.cpp
vim 有两种模式,一种是普通模式,另一种是插入模式。执行上述命令以后进入普通模式。
按下字母键“i”进入插入模式,使用方向键移动光标到需要插入的位置,然后输入想要插入
的内容。编辑完成后按键“Esc”退出回到普通模式,在普通模式下输入冒号“:”,然后输入
w 回车,保存更改。接着输入“:q”退出。也可以直接输入“:wq”保存并退出(注意 w 一定要
在 q之前,先保存再退出)。
查找:在普通模式下输入“/查找内容”,回车,即可定位到第一个匹配项。接着按下字母
键“n”可以查找下一个。
撤销:普通模式下输入“:u”并回车,实现撤销。
二、常用docker 命令
1.镜像
docker images 列出本地所有镜像
docker search(-s) nginx 搜索相关镜像 加上-s 参数 选出至少start数范围的镜像
docker pull(-a) 镜像名:版本号 拉取镜像,-a pull all
docker push 192.168.0.100:5000/ubuntu 推送镜像库到私有源
docker rmi(-f) 镜像名:版本号/镜像ID 删除镜像 (加上 -f 参数 强制删除)
docker rmi $(docker images -q) 删除所有镜像
docker rmi $(docker images | grep "none" | awk '{print $3}') 删除所有名字中带
“none” 关键字的镜像
docker save docker.io/tomcat:7.0.77-jre7 >/root/mytomcat7.tar.gz 导出镜像
docker load < /root/mytomcat7.tar.gz 导入镜像
2.容器
docker ps 查看当前正在运行的容器
docker inspect name/image[name/image...] 查看详细
docker ps -a 查看所有容器的状态
docker start/stop(-t) id/name[name...] 启动/停止某个(多个)容器 -t 指定时间
docker kill (-s) name[name...] 强制中断 -s指定SIGINT信号类型,默认“kill”
docker restart (-t) name[name...] 重启 -t 指定时间
docker pause name 暂停 docker unpause name 继续
docker rm(-$) name[name...] 移除
-f --force=false 强制移除运行中容器
-l --link=false 移除指定链接,保留底层容器
-v --volumes=false 移除容器关联卷
docker commit(-$)name 镜像名:版本号 提交指定容器为镜像
-a, --author="" 作者
-m, --message="" 简要说明
-p, --pause=true 暂停容器再提交
docker logs(-$) name 输出指定容器日志信息
-f 跟踪日志输出
-t 显示时间戳 类似 tail -f
--tail 在日志的末尾输出指定行数日志(默认所有日志)
docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器
(使用exit退出后容器不停止运行)
docker run(-$) IMAGE [COMMAND] [ARG...] 运行一个容器
-d 指定容器运行于前台还是后台,默认为false
-i 打开STDIN,用于控制台交互,默认为false
-t 分配tty设备,该可以支持终端登录,默认为false
-u, --user="" 指定容器的用户
-a, --attach=[] 登录容器(必须是以docker run -d启动的容器)
-w 指定容器的工作目录
-c 设置容器CPU权重,在CPU共享场景使用
-e, --env=[] 指定环境变量,容器中可以使用该环境变量
-m 指定容器的内存上限
-P, --publish-all=false 指定容器暴露的端口
-p, --publish=[] 指定容器暴露的端口
-h 指定容器的主机名
-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录
--cap-add=[] 添加权限
--cap-drop=[] 删除权限
--cidfile="" 运行容器后,在指定文件中写入容器PID值,监控系统用法
--cpuset="" 设置容器可使用哪些CPU,此参数可以用来容器独占CPU
--device=[] 添加主机设备给容器,相当于设备直通
--dns=[] 指定容器的dns服务器
--dns-search=[] 指定容器的dns搜索域名,写入到容器/etc/resolv.conf文件
--entrypoint="" 覆盖image的入口点
--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量
--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口
--link=[] 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
--name="" 指定容器名字,links特性需要使用名字
--net="bridge" 容器网络设置:
bridge 使用docker daemon指定的网桥
host //容器使用主机的网络
container:NAME_or_ID >
//使用其他容器的网路共享IP和PORT等网络资源
none 容器使用自己的网络(类似--net=bridge)
--privileged=false 指定容器是否为特权容器,特权容器拥有所有的权限
--restart="no" 指定容器停止后的重启策略:
no: 容器退出时不重启
on-failure: 容器故障退出(返回值非零)时重启
always: 容器退出时总是重启
--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true 设置由代理接受并处理信号,SIGCHLD,SIGSTOP和SIGKILL不代
例:
docker run -i -t centos6.8 进入到默认的线程”/bin/bash”,直接进入控制台操作
docker run -i -t -d centos6.8 进入到默认的线程”/bin/bash”,后台运行
docker run -d --restart=always centos6.8 ping www.docker.com 带命令启动
docker run -d --name=server-dbcentos6.8-mysql /usr/bin/mysql_safe -d
容器的名称为server-db,同时激活了数据库mysql的后台线程
docker run -d --name=server-db -p 3306:3306 -v /server/mysql-data:/
mysql-datacentos6.8-mysql /usr/bin/mysql_safe –d
将宿主机的数据库目录/server/mysql-data挂载到server-db上
docker run -d --name=server-db -p 3306:3306 centos6.8-mysql
/usr/bin/mysql_safe –d 服务器宿主机与容器端口映射并暴露
docker run -d --name=server-http --link=server-db -p 8080:80centos6.8-httpd
/usr/bin/httpd --DFOREGROUND
映射服务器宿主机的8080端口,关联service-db
docker run -it --rm centos6.8 容器进程结束后,立马自动删除
3.docker option
--api-enable-cors=false 在远程API中启用CORS 头
-b, --bridge="" 桥接网络 使用“none” 禁用容器网络
--bip="" 网桥模式
-d, --daemon=false 守护者模式
-D, --debug=false debug 模式
--dns=[] 强制 docker 使用指定 dns 服务器
--dns-search=[] 强制 docker 使用指定 dns 搜索域
-e, --exec-driver="native" 强制 docker 运行时使用指定执行驱动器
--fixed-cidr="" 固定IP的IPv4子网(例: 10.20.0.0/16)必须镶套在桥子网
中(由-b or --bip定义)
-G, --group="docker" 当在守护模式中运行时,组指向-H指定的unix套接字。
使用""禁用组设置。
-g, --graph="/var/lib/docker" 容器运行的根目录路径
-H, --host=[] 套接字绑定到守护模式。使用一个或多个tcp://主机:端
口,unix:///路径/到/套接字,fd://*或fd://socketfd.
--icc=true inter-container跨容器通信
--insecure-registry=[] 使用指定的注册表启用不安全通信(没有HTTPS的证书验
证和启用HTTP回退)(例如,localhost:5000或10.20.0 /16)
--ip="0.0.0.0" 绑定容器端口时使用的IP地址
--ip-forward=true 使用net.ipv4.ip_forward转发
--ip-masq=true 使IP伪装成桥的IP范围
--iptables=true 启用Docker添加iptables规则
--mtu=0 设置容器网络mtu
-p, --pidfile="/var/run/docker.pid" 指定守护进程pid文件位置
--registry-mirror=[] 指定一个首选的镜像仓库(加速地址)
-s, --storage-driver="" 强制 docker 运行时使用指定存储驱动
--selinux-enabled=false 开启 selinux 支持
--storage-opt=[] 设置存储驱动选项
--tls=false 开启 tls
--tlscacert="/root/.docker/ca.pem" 只信任提供CA签名的证书
--tlscert="/root/.docker/cert.pem" tls 证书文件位置
--tlskey="/root/.docker/key.pem" tls key 文件位置
--tlsverify=false 使用 tls 并确认远程控制主机
-v, --version=false 输出 docker 版本信息
docker服务重启
systemctl 方式
守护进程重启
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker
关闭docker
sudo systemctl stop docker
service 方式
重启docker服务
sudo service docker restart
关闭docker
sudo service docker stop