• Docker 使用手册


    Docker 使用手册

    环境配置

    菜鸟教程地址:https://www.runoob.com/docker/docker-container-usage.html

    docker 常用命令

    • 镜像运行容器
    docker run -it --name=testUbuntu ubuntu  创建一个名字为testUbuntu的容器
    options:
    	--name="name"    为容器指定新name
    	-d   后台运行容器,并返回容器ID,也即启动守护式容器
    	-i   以交互模式运行容器,通常与-t同时使用
    	-t   为容器重新分配一个伪输入终端,通常与-i同时使用
    	-P   注意是大写,随机端口映射
    	-p   小写,指定端口映射,有以下四种格式
    	ip:hostPort:containerPort
        ip::containerPort
        hostPort:containerPort
        containerPort
    	-v /宿主机目录:/容器目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 查看日志: docker logs -f -t –tail 100 kibana7.7.1
    • 更新启动参数: docker update –restart=always xxx
    • 查看所有容器: docker ps -a
    • 查看启动容器: docker ps
    • 启动已停止的容器: docker start 容器id或名字
    • 关闭容器 : docker stop 容器id
    • 取消容器开机启动: docker update --restart=no 容器ID
    • 强制关闭: docker kill 容器id
    • 删除已停止容器 : docker rm 容器id
    • 删除没有停止容器: docker rm -f 容器id
    • 进入容器内部: docker exec -it 程序id /bin/bash
    • exit 关闭容器退出(自测不会退出): ctrl+p+q
    • 查看日志: docker logs -f (追加) -t (加入时间戳) --tail 3 (显示最后3行) 容器id
    • 查看容器结构细节: docker inspect 容器id
    • 拷贝容器中的文件: docker cp 容器id:文件路径 要拷贝到的路径
    • 导入镜像文件:export导出:docker import - {镜像名} < [镜像文件路径]; save导出:docker load < busybox.tar.gz
    • 提交自己的docker镜像: docker commit -a="lgd" -m="mysql-lgd" 243baa0ea2a7 ligoudan/lgd-mysql:1.0
    • **查看镜像的详细信息:**docker inspect [imageId]
    • history 命令查看镜像历史: docker history [imageId]
    • 查询全部运行中的容器ID: $(docker ps -aq)

    Dockerfile指令说明:

    # 基础镜像使用java
    FROM java:8
    # 作者
    MAINTAINER wudl
    # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
    VOLUME /tmp
    # 将jar包添加到容器中并更名为zzyy_docker.jar
    ADD myspringbootdocker.jar /myspringbootdocker.jar
    # 运行jar包
    RUN bash -c "touch /myspringbootdocker.jar"
    ENTRYPOINT ["java","-jar","/myspringbootdocker.jar"]
    #暴露8088作为微服务容器对外端口
    EXPOSE 8088
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • FROM- 镜像从那里来

    • MAINTAINER- 镜像维护者信息

    • RUN- 构建镜像执行的命令,每一次RUN都会构建一层

    • CMD- 容器启动的命令,如果有多个则以最后一个为准,也可以为ENTRYPOINT提供参数

    • VOLUME- 定义数据卷,如果没有定义则使用默认

    • USER- 指定后续执行的用户组和用户

    • WORKDIR- 切换当前执行的工作目录

    • HEALTHCHECH- 健康检测指令

    • ARG- 变量属性值,但不在容器内部起作用

    • EXPOSE- 暴露端口

    • ENV- 变量属性值,容器内部也会起作用

    • ADD- 添加文件,如果是压缩文件也解压

    • COPY- 添加文件,以复制的形式

    • ENTRYPOINT- 容器进入时执行的命令

    问题

    docker: Error response from daemon: No command specified

    一般来说产生这个报错是因为启动的容器是被docker export出来的镜像,具体报错如下

    [root@dockertest container]# docker run --name nginx-import-test -d -p 4000:80 nginx-import-test:1.0  
    docker: Error response from daemon: No command specified.
    See 'docker run --help'.
    
    • 1
    • 2
    • 3

    被docker export出来的镜像在启动的时候需要指定command,例如我启动上述nginx容器,需要指定Command

    Command可以通过下面命令查询到:

    docker ps -a --no-trunc
    
    • 1

    查询到Command之后,运行容器:

    docker run --name nginx-import-test -d -p 4000:80 nginx-import-test:1.0  /docker-entrypoint.sh nginx -g 'daemon off;'
    
    • 1

    容器就正常启动了

    原文链接:https://blog.csdn.net/u013189824/article/details/109623741

    docker import和docker load的区别?

    首先,想要清楚的了解docker loaddocker import命令的区别,就必须了解镜像与容器的区别:

    • 镜像:用来启动容器的只读模板,是容器启动所需的rootfs,类似于虚拟机所使用的镜像。
    • 容器:Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

    镜像是容器的基础,可以简单的理解为镜像是我们启动虚拟机时需要的镜像,容器时虚拟机成功启动后,运行的服务。

    想要了解docker loaddocker import命令的区别,还必须知道docker savedocker export命令:

    • docker save images_name:将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
    • docker export container_id:将一个容器导出为文件,再使用docker import 命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

    docker import和docker load的区别

    实际上,既可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。

    两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。

  • 相关阅读:
    万里数据库入围赛迪数据库市场研究报告领导者象限,成最大黑马
    [附源码]计算机毕业设计springboot基于SpringBoot的演唱会购票系统论文2022
    SpringBoot+Vue项目疫情防控平台
    XREAL Air 2 Pro发布,加入电致变色技术,拓展AR眼镜使用场景
    【机器学习】阿里云天池竞赛——工业蒸汽量预测(6)
    0730~Mysql优化
    如何让化工企业的ERP库存账目更准确
    RabbitMQ的六种工作模式
    UE5 - UI Material Lab 学习笔记
    控制实体小车cartographer建图
  • 原文地址:https://blog.csdn.net/weixin_42526326/article/details/126247920