Docker 学习笔记

docker
      Docker 是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。 Docker 利用 Linux 核心中的资源分离机制,例如 cgroups,以及 Linux 核心名字空间,来创建独立的容器。

Docker的优势:

  1. 能更高效的利用系统资源:
  2. 更快速的启动时间:与传统虚拟化相比,docker容器的启动时间以秒计算。
  3. 一致的运行环境:可以避免因为主机操作系统、软件安装的不同导致程序BUG,不能及时找出问题。

Docker安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 			#安装docker
systemctl start docker 		#启动docker
systemctl enable docker		#设置docker开机启动

Docker 镜像常用命令:

* docker search 镜像名			#搜索镜像
* docker pull 镜像名			#拉取镜像
* docker images				  #查看镜像信息
* docker rmi 镜像名或者ID	   #删除镜像
* docker rmi -f 镜像名或ID	   #删除虚悬镜像,例如: docker rmi -f docker.io/centos
* docker rmi $(docker images -q -f dangling=true) #删除所有未打 dangling 标签的镜像
* docker build -t 			#构建镜像
* docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]		#镜像打标签,例如:docker tag centos centos:v1
* docker export 容器ID/容器名称 > xxx.tar	   #导出容器为tar文件
* docker save [images] [images] > xxx.tar  #导出多个镜像合并成一个tar包
* docker load < xxx.tar		#导入容器	 

Docker容器管理:

* docker run -itd --restart=always --name -h hostname [<镜像名>] [CMD命令]
* docker run -itd -P nginx

解释:
* -d	 #后台运行容器,并返回容器ID
* -i	 #以交互模式运行容器,通常与 -t 同时使用;
* -P	 #(大写P)随机端口映射,容器内部端口随机映射到主机的高端口 
* -p	 #(小p)指定端口映射,格式为:主机(宿主)端口:容器端口
* -t  	 #为容器重新分配一个伪输入终端,通常与 -i 同时使用;
* -h nginx  	#指定容器的hostname;
* --link= 原容器的ID或名字:容器自己  	#添加链接到另一个容器;
* -v 主机位置:容器内部位置 	 #绑定一个卷(目录不可以为相对路径)
* --name nginx-gyl  	#为容器指定一个名称;
* --restart=always 		#当docker重启时,容器也随之重启
* nginx 			#镜像的名称

* docker stop 容器ID/容器名称				#停止容器	
* docker ps -a -l 	#查看容器
* docker exec -ti 容器ID/容器名称 /bin/bash		#进入容器
* docker cp (容器ID/容器名称):/usr/lws.logs /root   #容器的lws.log 拷贝到宿主机 /root目录下
* docker rm 		#删除容器
* docker port (容器ID/容器名称)	#查看容器映射的端口
* docker logs (容器ID/容器名称)  #查看容器日志
* docker  ps   #查看当前在运行的容器
* docker  ps  -a	#查看所有容器(所有容器,无论是否在运行的容器)
* docker stop $(docker ps -a -q)	#停止所有正在运行的容器(或者:docker stop `docker ps -a -q`) 
* docker kill $(docker ps -a -q)	#杀死所有正在运行的容器
* docker rm $(docker ps -a -q)	#删除所有容器(只有先停止才可以删除)
* docker rm -f container_id/container_name	#删除正在运行的容器(危险,不给任何提示直接删除)

#批量停止、删除所有容器
* docker ps -a | awk '{print $1}'| egrep -v CONTAINER |xargs docker stop
* docker ps -a | awk '{print $1}'| egrep -v CONTAINER |xargs docker rm

#强制删除所有容器
* for i in `docker ps -a | sed '1d' | awk '{print $NF}'`;do docker rm -f $i;done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值