zoukankan      html  css  js  c++  java
  • Docker 主要操作命令

    #############################################################
    #							    #
    #		Docker核心技术总结 之 主要操作命令		    #
    #							    #
    #############################################################
    
    1、Docker的理念
     官方宣称:“一次安装,到处运行”。也就是说,在Docker容器(集装箱)上只需要一次性配置好环境,换到别的机子上就可以一键部署好,大大简化了操作,保证了开发环境和生产环境的一致性。
    
    2、虚拟机与Docker
     虚拟机:模拟了整个操作系统,包括硬件配置和软件驱动等等。笨重,耗资源。
     Docker:软件容器封装技术,只保留核心文件系统,可以简单理解为极简Linux系统。轻量,快捷。
    
    3、安装(一般为Linux环境)
     条件:64位系统,内核版本2.6.32及以上。
     查看内核版本:uname -r
    
     查看官方文档
     CentOS:https://docs.docker.com/engine/install/centos/
     Debian:https://docs.docker.com/engine/install/debian/
    
    4、Docker三要素
     镜像:一个只读的模板,类似于语言中的Class类。镜像一般是分层的,基于前一层但又相互独立。
     容器:用镜像创建的应用实例,类似于语言中的实例对象。它可以被启动、停止、删除。每个容器都可看成极简Linux系统,且相互隔离。
     仓库:存储镜像文件的场所。
    
    5、国内镜像加速
     1)先注册账号或者使用淘宝账号,登录搜索“镜像”关键字,点击第一个【容器镜像服务】,再点【管理控制台】,进入后左侧选择镜像加速器,复制加速地址。
     
     2)可以通过修改daemon配置文件 /etc/docker/daemon.json 来使用加速器,加入以下内容:
    	{"registry-mirrors": ["https://你的阿里云加速地址"]}		# 如https://rv0ermrw.mirror.aliyuncs.com
     
     3)重启Docker,$sudo service docker restart
     
     4)查看是否使用了镜像加速,ps -ef|grep docker
     
    6、Docker帮助命令
     docker version:查看版本
     docker info:显示Docker系统信息,包括镜像和容器数
     docker --help:查看命令帮助
     
    7、镜像命令
     1)docker images [options]:列出本地镜像
    		options:
    		-a:所有镜像文件(包含中间层镜像)
    		-q:只显示镜像ID
     
     2)docker search imgname:搜索Docker Hub上的镜像文件
     
     3)docker pull imgname [:tag]:下载镜像文件
    		tag:镜像版本号,默认最新latest
     
     4)docker rmi [options] imgID|imgname:删除镜像			# 操作镜像时,推荐用镜像ID
    		options:
    		-f:强制删除
    	docker rmi -f $(docker images -aq):删除所有镜像
    	
    8、容器命令
     1)docker run [options] imgID|imgname:tag [command]:运行容器
    		options:
    		-i:以交互式模式运行容器,通常与-t同时使用,即-it
    		-t:为容器分配伪终端,通常与-i同时使用,即-it
    		-p:指定端口映射,hostPort:containerPort
    		-d:后台运行容器(注意:若后面没接命令语句,则会自动退出容器)
    		--name:容器命名
     
     2)docker ps [options]:列出正在运行的容器
    		options:
    		-a:列出所有容器,包括历史运行的
    		-q:只显示容器ID
    		-l:显示最近创建的容器
     
     3)exit:退出容器,并停止运行
    	Ctrl + P + Q:退出容器,并后台运行
    	
    	docker attach contID|contname:重进容器
    	docker exec -it contID|contname [command]:不进入容器情况下执行一些命令
    	
     4)docker stop contID|contname:停止容器		# 操作容器时,推荐用容器ID
    	docker kill contID|contname:强制停止容器	
    	docker start contID|contname:启动容器
    	docker restart contID|contname:重启容器
    	
     5)docker rm [options] contID|contname:删除容器
    		options:
    		-f:强制删除
    	
    	docker rm -f $(docker ps -aq):删除所有容器
    	
     6)docker logs [options] contID|contname:查看容器日志
    		options:
    		-t:显示时间
    		-f:一直刷新显示
    		--tail n:显示尾部n行日志
    		
    	docker top contID|contname:查看容器进程信息
    	
    	docker inspect contID|contname:查看容器内部细节(如数据卷信息等)
    	
     7)docker cp contID|contname:容器内部路径 目标主机路径:将Docker文件拷贝到主机上
     
     8)docker commit -a="作者" -m="提交信息" 容器ID 新镜像名[:版本]:提交容器副本,成为一个新的镜像文件
     
    9、数据卷
     容器产生的数据进行持久化。主机与容器、容器与容器之间实现数据共享,双向数据同步。可形象比喻成U盘。
     生命周期:直到容器删除。
     
     docker run -it -v 宿主机绝对路径:容器绝对路径[:options] imgID|imgname:运行容器,并添加数据卷
    		options:
    		:rw:可读可写(默认)
    		:ro:只读
     
     docker run -it --volumes-from contID|contname imgID|imgname:运行容器,并从另一个容器上关联数据卷
    
    10、DockerFile
     docker build -f /mydockerfile -t myimgname:tag . :构建镜像文件。注意最后有个“.”,表示在mydockerfile同目录下
     
     编写DockerFile指令(大写):
      FROM:基础镜像,当前镜像是基于哪个镜像的。基础镜像scratch
      MAINTAINER:作者姓名和邮箱
      RUN:镜像构建时会执行的命令。注意,每个RUN命令都会生成一层镜像,最好用"&"来连接多个RUN
      EXPOSE:对外暴露的端口
      WORKDIR:运行容器后进入的工作目录
      ENV:设置环境变量。可用$引用这个变量
      COPY:纯拷贝到镜像
      ADD:拷贝,会自动解压
      VOLUME:添加数据卷
      CMD:容器启动时会执行的命令。会被docker run后面的command覆盖
      ENTRYPOINT:容器启动时会执行的命令。会被docker run后面的command追加
      ONBUILD:当本镜像被继承时,会触发的操作
     
     例:
     --------------------------------------------------------------------------
     FROM centos
     MAINTAINER wangchunwang
     
     ENV path /usr/local
     WORKDIR $path
     
     RUN yum update  				# 换行符,&命令连接符
     & yum install vim 			# 安装vim
     & yum install net-tools		# 安装ifconfig
     
     EXPOSE 80
     
     ENTRYPOINT echo $path
     ENTRYPOINT echo OK,成功
     
     ENTRYPOINT /bin/bash			# 如果前面用了ENTRYPOINT,这里就不能用CMD,否则容器不会启动!?
     --------------------------------------------------------------------------
     
    11、镜像导入导出
     导出:docker save imgID|imgname:tag > imgfile.tar 
     导入:docker load < imgfile.tar
     
    12、容器导入导出
     导出:docker export contID|contname > contfile.tar
     导入:docker import contfile.tar imgname:tag
     

      至此。转载请注明出处,记得扫码打赏支持哦,谢谢!

  • 相关阅读:
    CQUOJ 10819 MUH and House of Cards
    CQUOJ 9920 Ladder
    CQUOJ 9906 Little Girl and Maximum XOR
    CQUOJ 10672 Kolya and Tandem Repeat
    CQUOJ 9711 Primes on Interval
    指针试水
    Another test
    Test
    二分图匹配的重要概念以及匈牙利算法
    二分图最大匹配
  • 原文地址:https://www.cnblogs.com/wcwnina/p/13045810.html
Copyright © 2011-2022 走看看