docker 常用操作命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: docker 镜像的增、查、删、改;docker 容器的增、查、删、改;

【docker 常用操作命令】

一、镜像操作命令

命令

说明

pull

拉取镜像

search

搜索相关镜像

tag

重命名镜像

rmi

删除镜像

images 或 image ls

查看所有镜像

build

基于Dockerfile构建镜像

commit

基于已有容器构建镜像

1.拉取镜像

使用"docker pull 镜像名称",拉取远程仓库的镜像到本地(先校验本地是否存在,本地不存在时再默认从官网拉取最新版本的镜像)

以busybox为例:

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。

docker pull busybox  # 拉取镜像

在拉取镜像前,也可以通过docker search命令搜索不同类型的镜像

docker search busybox  # 搜索相关镜像

2.查看镜像

使用 "docker image ls" 或 "docker images" 命令查看本地已经存在的镜像

docker images  # 查看所有镜像docker images | grep busybox  # 查看指定镜像

3.修改镜像名称

使用 "docker tag 原始镜像名称 新名称" 命令重命名镜像,如:docker tag busybox:latest mybusybox:V1.0,重命名镜像会新增一条镜像,相当于创建了一个副本,但ID相同。

docker tag busybox:latest mybusybox:V1.0

4.删除镜像

使用 "docker rmi 镜像名称" 命令删除无用镜像,通过镜像名称删除,只会删除指定名称的镜像;通过镜像ID删除,会删除所有ID相同的镜像。

docker rmi mybusybox:V1.0
docker rmi -f ff4a8eb070e1

二、容器操作命令

容器操作命令:

命令

说明

create

创建容器

run

运行容器,run = pull + create + start

exec...-it...sh

进入容器内部

start

启动容器

restart

重启容器

stop

停止容器

rm

删除容器

commit

基于已有容器构建镜像

ps

查看容器状态:

  • docker ps -a:查看所有容器
  • docker ps -l:查看最近操作的容器

logs

查看容器日志:

  • docker logs 容器名:查看指定容器的运行日志
  • docker logs -f 容器名:实时查看指定容器的运行日志

容器操作相关参数:

命令

说明

--name

指定容器名称:

  • --name=容器名
  • --name 容器名

-d

后台运行

-p

映射端口,宿主机端口:容器端口,例如:

  • -p 3307:3306

-v

挂载目录到本地,宿主机目录:容器目录,例如:

  • -v /usr/local/nginx:/usr/local/nginx

--restart

自动重启,例如:

  • --restart=always,跟随docker服务的重启而重启

1.创建容器

docker create (--name=容器名) 镜像名,例如:

docker create --name=mybusybox busybox

2.查看容器状态

docker ps-a# 查看所有容器docker ps-a | grep mybusybox  # 过滤查看指定容器docker ps-l# 查看最近操作的容器

通过create命令创建完成后的容器是"Created"状态的,可以通过start命令来启动容器

3.启动容器

docker start mybusybox

4.进入容器

通过"docker exec -it 容器名 sh"命令进入容器内部,例如:

docker exec -it mybusybox sh

5.运行容器

docker run = docker pull + docker create + docker startdocker run --name=mynginx -d-p81:80 nginx

6.停止容器

docker stop 容器名或容器ID,例如:

docker stop mybusybox
docker stop 6fbf5a7a580b

7.删除容器

docker rm 容器名或容器ID,删除前要先停止容器,例如:

docker stop mybusybox
docker rm mybusybox
docker rm 6fbf5a7a580b

8.查看容器日志

  • docker logs 容器名或容器ID:以文件形式查看日志,类似 cat;
  • docker logs 容器名或容器ID:实时查看日志,类似 tail -f;

例如:

docker logs sonic_sonic-server-controller_1
docker logs -f sonic_sonic-server-controller_1

9.基于已有容器构建为新的镜像模板

用法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS

释义

-a

标注作者信息

-c

使用Dockerfile指令来生成镜像

-m

提交说明信息,类似于git commit -m "xxxx"

-p

在提交时,暂停容器

例如:当前有个需求,将当前服务器上正在运行的一个容器,无痕迁移到另一台服务器上运行。意味着需要执行以下步骤:

将当前正在运行的容器构建为新的镜像A>>将新镜像A的镜像文件复制到另一台服务器或直接将镜像A提交到镜像仓库>>在另一台服务器上将镜像A从镜像仓库下载下来>>基于镜像A创建容器并运行

① 打包容器

为了便于演示,先将一个文件复制到已有容器内

docker cp jdk_install.sh mysql:/home

② 查看容器内文件

docker exec -it mysql sh

可以看到,已经将jdk_install.sh文件复制到了mysql容器的/home目录下:

③ 基于容器构建新的镜像

docker commit -a"chenjigang" mysql new-mysql

通过"docker images"命令查看当前镜像列表,可以看到名为new-mysql的镜像:

④ 基于新镜像运行容器

docker run -d--name new-mysql-container -eMYSQL_ROOT_PASSWORD=123456-p3308:3306 new-mysql

⑤ 查看容器内文件

docker exec -it new-mysql-container sh

通过下图可以看出,之前复制到容器内的jdk_install.sh文件,已经保存到镜像中、并跟随出现在新的容器内:

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 Docker 容器
|
2月前
|
网络安全 数据安全/隐私保护 Docker
|
10天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
109 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
17天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
156 77
|
14天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
75 24
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
774 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
16天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
94 6
|
3月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
208 56
|
2月前
|
存储 监控 安全
|
2月前
|
存储 关系型数据库 MySQL

热门文章

最新文章