• [Docker] Docker常用命令


    ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                               📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                               📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

    💖💖如果文章对你有所帮助请留下三连✨✨

    🧆初识Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何影响

    一个完整的Docker有以下几个部分组成:

    1. DockerClient客户端

    2. Docker Daemon守护进程

    3. Docker Image镜像

    4. DockerContainer容器

    🍩docker常用命令

    🎂docker 基础命令

    安装docker

    yum install docker

    启动docker

    systemctl start docker

    关闭docker

    systemctl stop docker

    重启docker

    systemctl restart docker

    docker设置随服务启动而自启动

    systemctl enable docker

    查看docker运行状态

    systemctl status docker

    查看docker版本号信息

    docker version
    docker info

    🍰docker帮助命令

    帮助查看某些命令

    docker --help

    🥧镜像命令

    查看官方镜像

    查看镜像列表

    docker images
    docker images -a

    搜索镜像

    docker serch 镜像名
    docker search --filter=STARS=版本 镜像名

    拉取镜像

    不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

    1. docker pull 镜像名
    2. docker pull 镜像名:tag

    运行镜像

    1. docker run 镜像名
    2. docker run 镜像名:Tag

    删除镜像

    删除一个

    docker rmi -f 镜像名/镜像ID

    删除多个 其镜像ID或镜像用用空格隔开即可

    docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

    删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID

    docker rmi -f $(docker images -aq)

    保存镜像

    将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

    docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
    

    例如

    docker save tomcat -o /myimg.tar

    加载镜像

    任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

    docker load -i 镜像保存文件位置

    重命名镜像

    通过tag打标签

    docker tag (旧镜像IMAGE ID简写) (新镜像名:版本)

    🍝容器命令

    查看正在运行容器列表

    docker ps

    查看所有容器 -----包含正在运行 和已停止的

    docker ps -a

    运行一个容器

    -it 表示 与容器进行交互式启动

    -d 表示可后台运行容器 (守护式运行)

    --name 给要运行的容器 起的名字

    /bin/bash 交互路径

    docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 
    

    停止容器

    docker stop 容器名/容器ID

    删除容器

    删除一个容器

    docker rm -f 容器名/容器ID

    删除多个容器 空格隔开要删除的容器名或容器ID

    docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

    删除全部容器

    docker rm -f $(docker ps -aq)

    容器端口与服务器端口映射

    虚拟网卡通过物理机映射端口供外界访问传输协议

    -p 宿主机端口:容器端口

    进入容器

    docker exec -it 容器名/容器ID /bin/bash

    退出容器

    从容器内 退出到自己服务器中 需注意 两个退出命令的区别

    直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭

    exit

    优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭

    Ctrl + p + q

    停止容器

    docker stop 容器ID/容器名

    重启容器

    docker restart 容器ID/容器名

    启动容器

    docker start 容器ID/容器名

    kill 容器

    docker中kill和rm的区别:1、docker中kill命令会直接发送SIGKILL信号杀掉容器,而rm命令会删除一个或多个容器;2、rm命令会删除容器运行中产生的数据,而kill命令不会删除容器运行中产生的数据。

    docker kill 容器ID/容器名

    容器文件拷贝

    docker cp 命令用于在容器和本地文件系统之间复制文件/文件夹

    从主机上拷贝文件到容器内

    docker cp foo.txt mycontainer:/foo.txt

    从容器里面拷贝文件/目录到本地一个路径

    1. docker cp Name:/container_path to_path
    2. 例如:
    3. docker cp tomcat:usr/local/tomcat/README.md ./

    查看容器日志

    docker logs -f --tail=要查看末尾多少行 默认all 容器ID
    

    容器自动重启

    使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

    docker run -d  -p 8888:6379 --restart=always --name redis002 redis:5.0.5 /bin/bash

    更换容器名

    docker rename 容器ID/容器名 新容器名

    提交镜像后更新镜像

    运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像

    docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

    环境变量

    docker run -d -e name1=张三 -e name2=lisi nginx

    🍲数据挂载

    简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

    命令:

    -v 宿主机文件存储位置:容器内文件位置

    如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件

    -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

    示例:

    运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动

    docker run -p 6380:6379 --name redis01 --restart=always -v /home/211/redis/redis.conf:/etc/redis/redis.conf -v /home/211/redis/data:/data -d redis redis-server /etc/redis/redis.conf
  • 相关阅读:
    掌握这五点建议,Linux学习不再难
    【区块链技术与应用】(八)
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java星光之夜香水网站的设计与开发bfmcr
    【GIS奇妙之旅】遥感图像分类技术
    每日算法刷题Day14-反转链表、两个链表的第一个公共结点、删除链表中重复的节点
    MySQL数据迁移遇到的一些错误
    【Ubuntu】Windows远程Ubuntu系统
    vue2vue3生命周期详解
    力扣-463.岛屿的周长
    菜单栏程序坞APP的实现2(全面优化)
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/127736616