Docker快速入门

这篇博客介绍了Docker的基本概念和使用,包括帮助命令、镜像与容器的操作,如查看、搜索、新建、启动、停止和删除。详细讲解了Nginx、Tomcat、ElasticSearch和Portainer的基础案例,并探讨了Docker镜像的分层加载原理,强调了分层结构带来的资源共享、快速部署、内存节省和升级便利等优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。

Docker通常用于如下场景:

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

帮助命令

docker version
docker info
docker --help
docker 命令 --help

镜像命令

镜像查看

docker images

#解释
REPOSITORY 镜像的仓库源
TAG        镜像的标签
IMAGE ID   镜像的id
CREATED    镜像的创建时间
SIZE       镜像的大小


docker images --help
可选项
  -a, --all             # 列出所有镜像(默认隐藏中间图像)
      --digests         # 显示摘要
  -f, --filter filter   # 根据提供的条件过滤输出
      --format string   # 使用Go模板打印镜像
      --no-trunc        # 不截断输出
  -q, --quiet           # 仅显示镜像ID

搜索

docker search mysql
NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                          MySQL is a widely used, open-source relation…   12604     [OK]       
mariadb                        MariaDB Server is a high performing open sou…   4843      [OK]       
percona                        Percona Server is a fork of the MySQL relati…   576       [OK]       
phpmyadmin                     phpMyAdmin - A web interface for MySQL and M…   542       [OK]       

常用国内镜像网站

https://c.163.com/hub#/home
https://hub.daocloud.io/

下载镜像

docker pull mysql
docker pull daocloud.io/library/mysql:5.7.5-m15
docker pull hub.c.163.com/public/redis:2.8.4

例如

docker pull daocloud.io/library/redis:3.0.7-32bit #如果不写tag,默认就是latest
3.0.7-32bit: Pulling from library/redis
026514ce3fd8: Pull complete  #分层下载,docker iamge的核心联合文件系统 (下载过的层不会重复下载)
81c1b06634af: Pull complete 
6333e537f464: Pull complete 
15881137d7d0: Pull complete 
341de5be7ffe: Pull complete 
9b7619d254d1: Pull complete 
f00cc90ce1c5: Pull complete 
88748b7a0c37: Pull complete 
Digest: sha256:947163a9e1032c6b70c784f07e2164f86645ecfddef947681b8cc91015465e93 #签名
Status: Downloaded newer image for daocloud.io/library/redis:3.0.7-32bit
daocloud.io/library/redis:3.0.7-32bit # 真实地址

删除镜像

docker rmi IMAGE_ID # id 删除
docker rmi -f  $(docker images -aq) # 全部删除

容器命令

在centos镜像下学习

docker pull centos

新建并启动

docker run [可选参数] image
# 参数说明
--name="Name"	容器名字tomcato1 tomcat02,用来区分容器
-d				后台方式运行
-it				使用交互方式运行,进入容器查看内容
-p				指定容器的端口-p 8080:8080
	-p	ip:主机端口:容器端口
	-p	主机端口:容器端口(常用)
	-p	容器端口
	容器端口
-P				随机指定端口

示例

docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
[root@ba841ff6c650 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@ba841ff6c650 /]# exit
exit

列出所有运行的容器

docker ps 
	#列出当前正在运行的容器
-a	#列出当前正在运行的容器+带出历史运行过的容器
-n=?	#显示最近创建的容器
-q      # 仅显示容器ID

退出容器

exit # 直接停止退出
Ctrl+P+Q # 保持运行退出

删除容器

docker rm 容器ID # id 删除
docker rm -f 容器ID # 强制删除
docker rm -f $(docker ps -aq) # 全部删除
docker ps -a -q| xargs docker rm # 全部删除

启动和停止容器

docker start 容器ID # 启动
docker restart 容器ID # 重启 
docker stop 容器ID # 停止
docker kill 容器ID # 强制停止

其他命令

后台启动

docker run -d centos

查看日志

docker logs --help

参数:
      --details        显示提供给日志的其他详细信息
  -f, --follow         跟踪日志输出
      --since string   显示自时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(例如42m,42分钟)以来的日志
  -n, --tail string    从日志末尾显示的行数(默认为“全部”)
  -t, --timestamps     显示时间戳
      --until string   在时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(例如42m,42分钟)之前显示日志

由于centos 没有日志,需要编写脚本产生日志

docker run -d centos /bin/bash -c "while true;do echo VincentVic ;sleep 1; done"

查看日志

docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
cf6886da4dcf   centos    "/bin/bash -c 'while…"   2 seconds ago   Up 2 seconds             awesome_murdock
docker logs -f -t --tail 10 cf6886da4dcf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值