Docker 快速入门

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker 快速入门,迅速上手,保姆级教程。

1、初识 Docker

1、Docker 概念

  Docker 是一个开源的应用容器引擎 ,诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc),Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。容器是完全使用沙箱机制,相互隔离,容器性能开销极低。,Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)。

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

image-20220813080605642.png

2、Docker 安装

  Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,官网:https://www.docker.com

  Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求。

image-20220813080917630.png

#1、yum包更新到最新yumupdate#2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#3设置yum源yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo#4安装docker,出现输入的界面都按yyuminstall-ydocker-ce#5查看docker版本,验证是否验证成功docker-v

image-20220813082535883.png

3、Docker 架构

image-20220813081619704.png

  • 镜像(Image):Docker 镜像(Image),就相当于是 一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包 含了完整的一套 Ubuntu16.04 最小系统的 root 文件系 统。
  • 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实体。容 器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像。

默认情况下,将来从docker hub(https://hub.docker.com/)上下载 docker镜像,太慢。一般都会配置镜像加速器

  • 阿里云
  • 腾讯云
  • 等等

2、Docker 命令

1、Docker 进程相关命令

1)启动docker服务    

systemctl start docker

image-20220813082557004.png

启动之后查看状态。

image-20220813082647964.png

2)停止docker服务                  

systemctl stop docker

3)重启docker服务                  

systemctl restart docker

4)查看docker服务状态      

systemctl status docker

5)开机启动docker服务              

systemctl enable docker

2、Docker 镜像相关命令

1)查看镜像

docker images

docker images –q # 查看所用镜像的id

image-20220813083127608.png

2)搜索镜像

docker search 镜像名称

image-20220813083247596.png

3)拉取镜像

  从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。 如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。https://docs.docker.com/docker-hub/

docker pull 镜像名称

image-20220813083356012.png

4)删除镜像

docker rmi 镜像id       # 删除指定本地镜像

docker rmi `docker images -q`     # 删除所有本地镜像

删除再次查看,确认删除成功。

3、Docker 容器相关命令

1)创建容器

docker run 参数    #例如:  docker run -it --name=redis redis    进入容器,即交互式容器

docker run -id --name=redis redis    不进入容器,即守护式容器

容器创建成功。

image-20220813084506814.png

参数说明:

  • -i:保持容器运行,通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -d:以守护(后台)模式运行容器,创建一个容器在后台运行,需要使用docker exec 进入容器,退出后,容器不会关闭
  • -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
  • --name:为创建的容器命名
2)查看容器

docker ps     # 查看正在运行的容器

docker ps –a    # 查看所有容器

刚刚创建的redis,此时查看可以看到。

3)进入容器

docker exec 参数      # 退出容器,容器不会关闭  

4)启动容器

docker start 容器名称

5)停止容器

docker stop 容器名称

停止刚刚的redis,再次查看容器,可以看到redis不在运行。

6)删除容器

docker rm 容器名称

7)查看容器信息

docker inspect 容器名称

3、Docker 容器的数据卷

1、数据卷概念

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

2、数据卷作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

3、配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷

docker run ... –v 宿主机目录(文件):容器内目录(文件) ...


#docker run -it --name=c1 -v /root/data:/root/data_container couchbase/centos7-systemd /bin/bash

容器的目录data_container

image-20220813091124684.png

本机的目录data

image-20220813091148746.png

1)此时在宿主机(本机)data目录下创建文件

touch test.txt

image-20220813091357787.png

2)在容器查看data_container,发现同步过来了。

image-20220813091427665.png

注意事项:

  • 目录必须是绝对路径
  • 如果目录不存在,会自动创建
  • 可以挂载多个数据卷

4、多容器进行数据交换

  • 多个容器挂载同一个数据卷
  • 数据卷容器

5、数据卷容器

1)创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run –it --name=c3 –v /volume centos:7 /bin/bash  

2)创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash

docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash

6、数据卷小结

1)数据卷概念

  • 宿主机的一个目录或文件

2)数据卷作用

  • 容器数据持久化
  • 客户端和容器数据交换
  • 容器间数据交换

3)数据卷容器

  • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )
  • 通过简单方式实现数据卷配置
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
应用服务中间件 nginx Docker
单机编排工具之docker-compose快速入门使用
这篇文章是关于如何使用docker-compose进行单机编排的快速入门指南,包括了镜像准备、docker-compose安装、使用教程以及验证服务生效的步骤。
56 2
单机编排工具之docker-compose快速入门使用
|
2月前
|
Ubuntu Linux Docker
docker swarm快速入门篇
关于Docker Swarm集群部署和验证高可用性的快速入门教程。
44 2
|
3月前
|
数据采集 存储 Docker
Docker快速入门指南
Docker快速入门指南
50 1
|
3月前
|
Ubuntu Shell Linux
docker快速入门教程
docker快速入门教程
78 0
|
5月前
|
Linux 开发工具 Docker
【Docker】快速入门手册
【Docker】快速入门手册
119 1
|
5月前
|
Java Linux Shell
docker 打包 springboot 项目快速入门
docker 打包 springboot 项目快速入门
62 0
|
6月前
|
jenkins Java 持续交付
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
6月前
|
Java 应用服务中间件 Linux
Docker 快速入门(三)
Docker 快速入门
62 1
|
6月前
|
存储 关系型数据库 MySQL
Docker 快速入门(二)
Docker 快速入门
70 1
|
6月前
|
运维 应用服务中间件 Linux
Docker 快速入门(一)
Docker 快速入门
114 1