[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 常用命令大全!!

相关推荐
唯独失去了从容43 分钟前
WebRTC服务器Coturn服务器的管理平台功能
运维·服务器·webrtc
roman_日积跬步-终至千里3 小时前
【K8s基础】K8s下的Helm和Operator:包管理器与运维程序化
运维·容器·kubernetes
PassLink_5 小时前
[Kaggle]:使用Kaggle服务器训练YOLOv5模型 (白嫖服务器)
运维·服务器·yolo
leo·Thomas6 小时前
Rundeck 介绍及安装:自动化调度与执行工具
docker·自动化·运维工具·rundeck
极小狐6 小时前
极狐GitLab 合并请求依赖如何解决?
运维·git·ssh·gitlab·github
程序猿(雷霆之王)6 小时前
Linux——进程间通信
linux·运维·服务器
riveting7 小时前
SD2351核心板:重构AI视觉产业价值链的“超级节点”
大数据·linux·图像处理·人工智能·重构·智能硬件
技术liul7 小时前
Docker Compose和 Kubernetes(k8s)区别
docker·容器·kubernetes
易保山8 小时前
MIT6.S081 - Lab10 mmap(文件&内存映射)
linux·操作系统·c
禅与Bug的修复艺术8 小时前
JAVA后端开发常用的LINUX命令总结
java·linux·面试·java面试·后端开发·java后端·面试经验