当前位置: 首页 > article >正文

[Linux]Docker快速上手操作教程

前言

以下命令并不是docker的所有,仅涉及日常使用时最最常用的命令。
目的之一时给入门的朋友熟悉学习,其二时我自己偶尔使用时备忘。

一、概念

简单介绍下docker的相关概念:

  • 镜像:Docker 镜像是一个轻量级、可执行的独立软件包,可以看作是一个构建容器的基础层。
  • 容器:Docker 容器是镜像的运行实例,容器之间是隔离的。
  • 仓库:Docker 仓库是用于存储和分发 Docker 镜像的地方

如果你是初次学习以上概念,那么可以先简单地理解为:
镜像是一间间的套房,容器是人们住进这些套房后变成的一个个“家”,仓库是卖房的。

二、管理本地镜像

3.1 找docker镜像

从镜像仓库中查找想要的镜像,语法如下:

docker search <docker镜像名>

如:

docker search mysql

3.2 从镜像仓库拉取镜像到本地

docker pull <镜像名>[:版本号]

如:

docker pull mysql
docker pull ubuntu:20.04

3.3 查看拉取到本地的镜像

docker images

docker镜像拉取到本地之后,就可以使用docker images查到,之后需要再次使用该镜像时,不再需要从仓库中拉取。

3.3 删除镜像

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

如:

docker rmi -f mysql

四、管理容器

4.1 创建容器

docker run [可选参数] image
# 参数说明
--name="name"        容器名字:用来区分容器
-d                   后台方式运行
-it                  使用交互式运行:进入容器查看内容
-p                   指定容器的端口(四种方式)小写字母p
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口
    -p 容器端口
    容器端口
-P                     随机指定端口(大写字母P)
-v                    指定文件映射关系
     -v 本地路径:容器内部路径
-e                   该镜像的特殊参数,如用于指定初始密码等

如运行mysql容器,一般会使用如下命令:

    docker run -p 3306:3306 --name mysql 
    -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    -v /data/mysql/logs:/logs \
    -v /data/mysql/data:/var/lib/mysql \
    --restart always \         # 该参数可选,用于让该容器在docker启动时自动启动
    --privileged=true \        # 赋予容器几乎与主机相同的权限,mysql镜像一般需要多加这个参数
    -e MYSQL_ROOT_PASSWORD=123456 -d mysql

4.2 查看运行的容器

docker ps

4.3 容器删除

docker rm -f <容器id>

4.4 容器启停

docker start <容器id>        # 启动容器
docker restart <容器id>    # 重启容器
docker stop <容器id>        # 停止当前正在运行的容器
docker kill <容器id>        # 强制停止当前容器

4.5 进入和退出容器

docker exec -it <容器id> /bin/bash  # 进入
exit # 退出

4.6 拷贝容器内文件

docker cp 容器id:容器内路径 宿主机路径 #从容器内拷贝文件到主机
docker cp 宿主机路径 容器id:容器内路径  # 将宿主机文件拷贝入容器

参考:
Docker 常用命令大全!!


http://www.kler.cn/a/505538.html

相关文章:

  • 闲谭SpringBoot--ShardingSphere分布式事务探究
  • Spring AI 从入门到实践
  • 线程池底部工作原理
  • 微服务之松耦合
  • 网络编程 - - TCP套接字通信及编程实现
  • 计算机的错误计算(二百一十二)
  • LevelDB 源码阅读:如何优雅地合并写入和删除操作
  • 【MySQL学习笔记】MySQL存储过程
  • 通信与网络安全管理之ISO七层模型与TCP/IP模型
  • 计算机后端学习路径(精华版)
  • 仪式感在会员体系建设中的重要性及AI智能名片2+1链动模式S2B2C商城小程序的应用研究
  • 神经网络基础-网络优化方法
  • Lua调用C#
  • YOLOv11 OBB 任务介绍与数据集构建要求及训练脚本使用指南
  • Linux——进程信号
  • rust toml
  • 遥感图像滑坡分类数据集2773张2类别
  • mac下使用arthas分析工具报错
  • Nginx三种不同类型的虚拟主机(基于域名、IP 和端口)
  • VSCode连接Github的重重困难及解决方案!
  • Python入门教程丨2.3 流程控制、算法效率分析及优化
  • MySQL(行结构)
  • 校园跑腿小程序---轮播图,导航栏开发
  • 深度学习-85-RAG技术之Faiss搭配合适的model和embedding函数应用示例
  • 【c++】【Linux】堆和栈的区别
  • 81_Redis经典面试问题