栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker基础命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker基础命令

#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      --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    base      #进入执行的容器中
	docker-compose   ps       #查看当前容器列表信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号