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

相关推荐
Goboy4 分钟前
夯爆了,我被一个一句话接入的免费可观测平台策反了,那一刻我决定放弃用了3年的Prometheus
后端·docker·kubernetes
CodeYp201921 分钟前
第19讲:自旋锁
linux·自旋锁
此生决int30 分钟前
Linux系列(08)——进程控制
linux·运维·驱动开发
BioTender44 分钟前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化
Percep_gan1 小时前
Linux中安装gitea,很详细
linux·elasticsearch·gitea
Z21-X2 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Rabitebla10 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
Decay__10 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
java_logo10 小时前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更