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

相关推荐
代码游侠5 分钟前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio6 分钟前
rk芯片驱动编写
linux·学习
mango_mangojuice7 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey90316 分钟前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技1 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
A星空1232 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
释怀不想释怀2 小时前
Linux环境变量
linux·运维·服务器
zzzsde2 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
凡人叶枫2 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
yuanmenghao2 小时前
Linux 性能实战 | 第 7 篇 CPU 核心负载与调度器概念
linux·网络·性能优化·unix