首页 > 其他分享 >Docker常用命令

Docker常用命令

时间:2024-05-25 21:55:19浏览次数:26  
标签:容器 name -- id 常用命令 镜像 Docker docker

  1. docker基础命令

    systemctl start docker          启动docker
    systemctl stop docker           关闭docker
    systemctl restart docker        重启docker
    systemctl enable dockerdocker   设置随服务启动而自启动
    systemctl status docker         查看docker运行状态
    docker version                  查看docker版本号信息
    docker info
    docker --help                   docker帮助命令
    
  2. docker镜像命令

    docker images              查看自己服务器中docker 镜像列表
    docker search 镜像名       搜索镜像
    docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
    docker pull 镜像名         拉取镜像
    docker pull 镜像名:tag
    docker pull mysql         拉取最新版 mysql
    docker run 镜像名          运行镜像
    docker run 镜像名:Tag
    
  3. docker容器命令

    docker ps:列出运行中的容器
    docker ps -a : 查看所有容器,包括未运行
    docker stop 容器id或name:停止容器
    docker kill 容器id:强制停止容器
    docker start 容器id或name:启动已停止的容器
    docker inspect 容器id:查看容器的所有信息
    docker container logs 容器id:查看容器日志
    docker top 容器id:查看容器里的进程
    docker exec -it 容器id /bin/bash:进入容器
    exit:退出容器
    docker rm 容器id或name:删除已停止的容器
    docker rm -f 容器id:删除正在运行的容器
    docker exec -it 容器ID bash :进入容器
    
  4. docker数据卷:Docker将运用与运行的环境打包形成容器运行, Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。 为了能保存数据在Docker中我们使用卷;卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

    • 命令:运行容器,指定挂载数据卷命令:
    docker run --name xxxx -p 8888:8888 -v /my:/docker -it imagename 
    
    --name: 为容器起名字
    -p:宿主机端口:docker端口 (端口映射)
    -v:宿主机目录:docker目录 (必须为绝对路径)
    
    docker volume create my-vol     创建数据卷
    docker volume ls                查看所有的数据卷
    docker volume inspect my-vol    查看指定数据卷的信息
    docker inspect con-name         查看指定容器的信息
    docker volume rm my-vol         删除数据卷 
    docker volume prune             删除未使用的数据卷
    
    挂载主机目录
    docker run -it --name c1 -v /宿主机目录:/docker目录 -it imagename /bin/bash
    
  5. 自定义镜像:Docker 镜像是 Docker 容器运⾏时的只读模板,每⼀个镜像由⼀系列的层 (layers) 组成

    • 基于已有镜像创建
    docker commit [选项] 容器ID/名称 仓库名称:[标签]
    -m:说明信息
    -a:作者信息
    -p:生成过程中停止容器的运行
    
    • 基于本地模板创建
    通过导入操作系统模板文件生成新的镜像,使用wget命令导入为本地镜像
    wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
    导入成功后可查看本地镜像信息
    docker images | grep new
    
    • 基于Dockerfile创建:Dockerfile是由一组指令组成的文件,Dockerfile结构四部分:基础镜像信息,维护者信息,镜像操作指令,容器启动时执行指令,Dockerfile操作指令如下:
  6. 构建一个Java项目的镜像

    • 创建Dockerfile
    # 指定基础镜像
    FROM eclipse-temurin:8-jre
    
    # 在镜像中执行命令,创建目录,并使用它作为工作目录
    RUN mkdir -p /project
    # 设置工作目录,即后续命令的默认执行路径
    WORKDIR /project
    # 复制文件或目录到镜像中。可以将本地文件或目录复制到镜像的指定位置。
    COPY ./code-safe.jar /project/code-safe.jar
    
    # 设置环境变量
    # 指定容器的时区
    ENV TZ=Asia/Shanghai
    # 用于配置 Java 虚拟机的选项,如初始堆大小、最大堆大小和随机数生成器,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
    ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
    ## 应用参数
    ENV ARGS=""
    
    # 定义容器启动后执行的命令,启动后端项目
    CMD java ${JAVA_OPTS} -jar code-safe.jar $ARGS
    
    # 声明要监听的端口
    EXPOSE 16000
    
    • 使用eclipse-temurin:8-jre作为基础镜像,然后,我们创建一个工作目录/project,并将Java项目的可执行JAR文件复制到容器中的该目录下。设置了一些环境变量,用于配置Java虚拟机的选项和应用参数。其中,JAVA_OPTS用于配置Java虚拟机的一些选项,如初始堆大小和最大堆大小。我们还定义了一个ARGS环境变量,用于传递应用程序的命令行参数。最后,我们使用CMD指令定义容器启动后要执行的命令。

    • 构建镜像,将资源jar包,Dockerfile 放在同一个目录中

    docker build -t java .
    
    • 查看镜像是否构建成功
    docker images
    
    • 使用docker run命令来运行容器
    docker run -d -p 16000:16000 --name myjava java:latest
    
    • 容器是否运行成功
    docker ps -a
    
  7. docker自定义网络

    • 帮助命令与查看所有的网络
    docker network --help
    docker network ls
    
    • 网络模式
    网络模式 配置 说明
    bridge模式 –net=bridge 默认值,在Docker网桥docker0上为容器创建新的网络栈
    none模式 –net=none 不配置网络,用户可以稍后进入容器,自行配置
    container模式 –net=container:name/id 容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Network namespace
    host模式 –net=host 容器和宿主机共享Network namespace
    用户自定义 –net=自定义网络 用户自己使用network相关命令定义网络,创建容器的时候可以指定为自己定义的网络
    • 创建 mynet 网络
    docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
    
    查看网络
    docker network ls
    
    查看 mynet 网络详细信息
    docker network inspect mynet
    
    • 启动容器,并加入mynet网络
    docker run -it -P --name mynet-tomcat01 --net mynet tomcat
    

标签:容器,name,--,id,常用命令,镜像,Docker,docker
From: https://www.cnblogs.com/hytip/p/18213051

相关文章

  • docker删除下载的镜像失败(镜像存在但是系统反馈找不到) & 虚悬镜像
    一般镜像删除办法:dockerrm[容器名称或ID]// 删除运行中的容器dockerrm-f[容器名称或ID]但是需要删除却找不到,这个叫虚悬镜像,是因为TAG发生某种错误丢失造成的//单个删除办法:dockerrmi-f [容器名称或ID]//查找本地全部虚悬镜像dockerimagels-fdanglin......
  • docker -01
    1docker介绍 docker是一种容器技术,与容器的关系,容器是种快速打包技术,docker是实现容器技术的一种工具。两种支持技术:namespace:命令空间,主要用于资源的隔离cgroup:负责资源的控制,如进程使用cpu/mem的限制,进程的优先级控制,进程管理等官方网站:www.docker.......
  • git常用命令
    1、下载远程代码gitclone<地址>2、查看远程所有分支gitbranch-a3、创建并切换到本地develop分支gitcheckout-bdeveloporigin/develop4、更新远程develop分支代码到本地gitpullorigindevelop5、合并develop分支gitmergedevelop6、提交暂存区到本......
  • 【Docker系列】 Docker容器具体信息查询
    ......
  • docker安装MySQL8.0.35主从复制(实战保姆级)
    很久没有记录了,今天有时间就记录一下最近安装遇到的问题 liunx安装docker这个是前提,就不多过述1准备两台服务器10.104.13.13910.104.13.1402确保liunx安装的docker正常运行的ps:最好提前关闭防火墙或者提前开放对应端口不然同步会失败的关闭防火墙后记得重启docker......
  • OSGI 常用命令
    分类命令含义命令格式样例控制框架shutdown关闭框架shutdownclose关闭并退出框架closeexit立即退出框架,相当于System.exitexit控制状态install安装位于指定URL的bundle安装c盘根目录下的一个bundle:installuninstall卸载指定bundle卸载ID为2......
  • 全网讲的最详细的Docker镜像分层存储原理
    先说结论,容器镜像分层存储图示欢迎关注实验环境准备当前实验docker版本24.0.7如下,当前docker版本使用overlay2机制存储镜像Client:DockerEngine-CommunityVersion:24.0.7APIversion:1.43Goversion:go1.20.10Gitcommit:......
  • 【讲解下Debian的常用命令】
    ......
  • 【Rabbitmq使用】docker compose 命令重启rabbitmq后数据丢失问题
    目录0.导火索1.问题和背景2.原因与解决2.1原因2.2解决0.导火索在服务器上使用一个rabbitmq服务,但是需要多个项目使用这一个mq服务,于是就建立了rabbitmq的虚拟主机virtualhost来作为各个服务的迷你版mq来使用;再使用dockercompose命令重启后,某个项目报错如下:......
  • 总结一下windows 运行窗口的一些常用命令
    cmd:打开命令提示符窗口,可以在其中执行各种命令和操作系统功能。msconfig:打开系统配置实用程序,可以配置系统启动项、服务和启动选项。appwiz.cpl:打开“程序和功能”窗口,可以卸载或更改安装的程序。control:打开控制面板,可以对系统设置和功能进行管理。devmgmt.msc:打开......