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

前言

以下命令并不是docker的所有,仅涉及日常使用时最最常用的命令。

目的之一时给入门的朋友熟悉学习,其二时我自己偶尔使用时备忘。

一、概念

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

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

如果你是初次学习以上概念,那么可以先简单地理解为:

镜像是一间间的套房,容器是人们住进这些套房后变成的一个个"家",仓库是卖房的。

二、管理本地镜像

3.1 找docker镜像

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

shell 复制代码
docker search <docker镜像名>

如:

shell 复制代码
docker search mysql

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

shell 复制代码
docker pull <镜像名>[:版本号]

如:

shell 复制代码
docker pull mysql
docker pull ubuntu:20.04

3.3 查看拉取到本地的镜像

shell 复制代码
docker images

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

3.3 删除镜像

shell 复制代码
docker rmi -f <镜像名/镜像ID>

如:

shell 复制代码
docker rmi -f mysql

四、管理容器

4.1 创建容器

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

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

shell 复制代码
    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 查看运行的容器

shell 复制代码
docker ps

4.3 容器删除

shell 复制代码
docker rm -f <容器id>

4.4 容器启停

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

4.5 进入和退出容器

shell 复制代码
docker exec -it <容器id> /bin/bash  # 进入
exit # 退出

4.6 拷贝容器内文件

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

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

相关推荐
HiDev_23 分钟前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling1 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind1 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森1 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客2 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
XMAIPC_Robot2 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
AOwhisky3 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客3 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
Urbano3 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化
风曦Kisaki4 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器