docker基础命令

本文详细介绍了Docker的基本操作,包括启动、停止、重启容器,查询与删除镜像和容器,使用Dockerfile创建镜像,以及网络和体积管理。此外,还提到了docker-compose用于批处理容器管理和网络配置。内容涵盖Docker命令行参数,如限制资源使用,以及Docker网络和持久卷的使用方法。
摘要由CSDN通过智能技术生成

#docker服务操作

    service docker  stop    #停止
    service docker  start    #启动
    service docker  restart    #重启

#查询所有的镜像
 

   docker  imagas
    docker  image  ls
    


#删除指定的镜像
    

docker image rm [镜像id]
    docker rmi [镜像id]


    
#查询所有的容器-container(包含退出的)
  

 docker ps -a 
    docker container  ls -a
    


#查询正在运行的容器

    docker container  ls
    docker ps

#删除指定的容器(容器id可以不用写全,只写一部分能区分的就可以)
  

  docker container  rm  [容器id]
    docker  rm   [容器id]

#查询所有容器的id
    

docker container  ls  -aq

#删除所有的容器

    docker rm  $(docker container  ls  -aq)

#查询已经退出去的容器id    
  

 docker container  ls  -f "status=exited"  -q


    
#删除已经退出去的容器
    

docker rm  $(docker container  ls  -f "status=exited"  -q)

#交互运行容器
  

 docker  run -it  [容器名]


    
#运行容器
 

   docker  run  [容器名]
    docker  run  -d [容器名]   #后台运行容器
    docker  run  -d  --name=demo   [容器名]   #后台运行容器且命名为demo
                     --link=[容器名a]   #直接可以在当前容器内用a访问容器名a
                 -e Mysql=5.5         #用-e可以直接把参数写进容器
     


#把容器commit成一个镜像
  

 docker commit  [容器名]  [镜像名:tag]


    
#进入到运行中的容器里面

    docker exec  -it  [容器id]  /bin/bash
                                执行的命令
     #进入容器后 
         env    #可以查看容器的变量参数
         


#停止正在运行的容器
 

   docker container  stop  [容器id/容器名]
    docker stop  [容器id/容器名]
    


#启动已经停止的容器
  

 docker container  start  [容器id/容器名]
    docker start  [容器id/容器名]

#重启正在运行的容器
 

   docker container  restart  [容器id/容器名]
    docker restart  [容器id/容器名]    

#查看容器信息

    docker container  inspect  [容器id/容器名]


#查看命令信息
  

 docker   <run/container/image>   --help
    


#Dockerfile语法(参考Dockerfile reference)
  

  FROM    scratch             #基础镜像
  LABEL    version="1.0"        #元数据/标签 不可少,例:作者
  RUN        yum install -y vim    #linux命令,每多一条run就会多一层image,最好是命令写在一行,用&&符号并用,用\反斜线换行。(执行命令并创建新的Image Layer)
  WORKDIR    /root                #工作目录,如果没有会自动创建,如果有多个WORKDIR,从上往下依次生成目录(中间没有用绝对路径的时候);不要用RUN cd,尽量使用绝对目录
  ADD        hello /                #把hello执行文件添加到根目录下,例 ADD test.tar.gz / 添加到根目录并解压(也就是不仅仅可以添加还可以解压缩)
  COPY    hello test/            #复制文件到指定的路径:大部分情况下copy优于add,添加远程文件/目录请使用curl或者wget(RUN CURL *****)
  ENV        MYSQL_VERSION 5.6     #设置常量  例: RUM apt-get install -y mysql-server="${MYSQL_VERSION}"
  VOLUME                        #存储
  EXPOSE    5000                #网络,把运行的容器端口暴露出来
  CMD                            #设置容器启动后默认执行的命令和参数;如果docker run指定了其他命令,CMD命令被忽略;如果定义了多个CMD,只有最后一个会执行。
  ENTRYPOINT                    #设置容器启动时运行的命令;让容器以应用程序或者服务的形式运行;不会被忽略,一定会执行;最佳实践,写一个shell脚本作为entrypoint,例 COPY start.sh /usr/local/bin/   ENTRYPOINT ["start.sh"]


#Shell和Exec格式
    Shell格式
        RUM apt-get install -y vim
        CMD echo "hello docker"
        ENTRYPOINT echo    "hello docker"

    Exec格式
        RUN ["apt-get","install","-y","vim"]
        CMD ["/bin/echo","hello docker"]
        ENTRYPOINT ["/bin/echo","hello docker"]


 

    

#限制容器的cpu和内存(docker run  --help 里面的参数)

    docker  run  --cpu-shares=10  --memory=200M  [容器名]
                #    cpu占用权重

#docker network(网络)
  

  docker network ls
    单机
        bridge network
            docker network create -d bridge my-bridge  #创建一个指定的 bridge网络
            # 如果2个容器都  加入到用户 自定义的bridge 就会自动link 能够ping 通,如果是系统自带的 bridge0 就需要link才可以ping通
        host network
            #直接用的就是主机的网络
        none network
            #只能内部用

    多机
        overlay network
            docker network create -d overlay demo

#volume 持久卷

    docker volume  ls   # 查询所有的持久卷
    docker volume  rm  [id]  # 删除指定的持久卷
    docker VOLUME  inspect  [id] #查询持久卷详情
	docker  rum  -v mysql:/var/lab/mysql  # 名称:映射路径 来使用
                 -v /home/aaa:/root/aaa   #  例


        #docker compose(批处理)
    #1、是一个工具 (命令行工具)
    #2、可以通过一个yml文件管理多个docker容器
    #3、有一个默认的名字  docker-compose.yml。当然也可以修改名称
    #services
        #1、一个service代表一个container,这个container可以从dockerhub的image来创建,
            或者从本地的Dockerfile build出来的image来创建。
        #2、service的启动类似docker run,我们可以给其指定network和volume,
            所以可以给service指定network和volume的引用。
        
    #networks
    #volumes
    
#docker-compose 命令
  

  docker-compose  up        #创建容器并启动
        -f  [文件名]           #如果不加 -f  默认就是docker-compose.yml文件
        -d                    #后台运行
    docker-compose  down      #停止容器并删除(包含创建的network)
    docker-compose  start      #启动已经存在的容器
    docker-compose  stop      #停止容器
    docker-compose  exec  <service>  base      #进入执行的容器中
	docker-compose   ps       #查看当前容器列表信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值