Docker基本讲解及演示

Docker安装教程

Docker安装教程

1、Docker介绍

Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖项打包成一个轻量级、可移植的容器,然后发布到任何支持 Docker 的环境中运行,无论是开发机、测试机还是生产环境。

Docker基于沙箱技术,每个容器都有自己的独立运行环境,包括操作系统、库文件、配置等,实现了资源隔离和轻量级迁移。

2、Docker三要素

  • 镜像(image):镜像就是一个只读的模板,包含了运行容器所需的文件系统、配置参数、库和运行时环境等。
  • 容器(container):容器是代码的隔离环境,可以理解为一台独立的服务器
  • 仓库(repository):仓库中存储了一堆镜像,可以拉取或向其推送镜像

3、Docker常用命令

一:docker本身相关命令

  • 启动 docker
shell 复制代码
systemctl start docker
  • 关闭 docker
shell 复制代码
systemctl stop docker
  • 重新启动 docker
shell 复制代码
systemctl restart docker
  • 查看 docker 运行状态
shell 复制代码
systemctl status docker
  • 查看 docker 版本
shell 复制代码
docker -v

二:镜像(image)

1.镜像的查看、搜索、拉取、删除
  • 列出本地所有镜像【查看】
shell 复制代码
docker images
结果展示:
    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    nginx        latest    605c77e624dd   2 years ago   141MB
    mysql        latest    3218b38490ce   2 years ago   516MB
    ...
  • 搜索镜像
shell 复制代码
docker search 镜像名	  		# 搜索与【镜像名】匹配的镜像
如:docker search nginx
  • 拉取镜像
shell 复制代码
docker pull 镜像名:版本号
如:docker pull nginx		# 不写版本默认为最新版
  • 删除镜像
shell 复制代码
docker rmi 镜像名
如:docker rmi nginx	# 删除 ngnix 镜像
2.移植镜像
  • 保存镜像
shell 复制代码
docker save -o nginx.tar nginx  #将镜像nginx导出,形成本地文件nginx.tar.tar
注意:移植到其他服务器记得给tar包加上可读权限
  • 加载镜像
shell 复制代码
docker load -i nginx.tar	#将镜像nginx从本地文件nginx.tar中加载出来

三:容器(container)

1.容器的查看、创建、启动、关闭、重启、删除
  • 查看容器
shell 复制代码
docker ps 		# 查看已安装并正在运行的容器
docker ps -a	# 查看所有容器
  • 创建容器并运行
shell 复制代码
docker run 配置 别名
常用配置:
	--name=NAME   		# 为容器指定名字为NAME,不使用的话系统自动为容器命名【容器名】
	--restart=always	# 容器退出后自动重新启动,保证容器服务的可靠性和持续可用性。
	--privileged=true	# 授予容器内进程访问宿主机上所有设备的权限
	-p 容器端口号:主机端口号		# 指定端口映射
	-v	文件夹:文件夹		# 目录的映射【docker容器与虚拟机共享同一个目录】
	-d	IMAGE_ID		# 后台运行容器并返回容器ID,即启动守护式容器(后台运行)
 
# 创建并允许 Nginx 容器
docker run --name nginx -p 80:80 -d 605c77e624dd nginx
  • 启动容器
shell 复制代码
docker start 容器名
如:docker start nginx
  • 关闭容器
shell 复制代码
docker stop 容器名
如:docker stop nginx
  • 重启容器
shell 复制代码
docker restart 容器名
如:docker restart nginx
  • 删除容器
shell 复制代码
docker rm 容器名
如:docker rm nginx
2.查看容器日志
shell 复制代码
docker logs 容器名
如:docker logs ngnix
3.容器重命名
shell 复制代码
docker rename 原来的容器名 新的容器名
4.进入与退出指定容器
shell 复制代码
# 进入指定容器
docker exec -it 【IMAGE_ID|容器名】 /bin/bash
如:docker exec -it 3218b38490ce /bin/bash	【进入mysql】

# 退出容器【从容器回到虚拟机】
exit

4、Docker的实际演示

一:mysql安装

shell 复制代码
docker search mysql 		# 找到合适的mysql镜像
docker pull mysql			# 下载镜像(默认最新版本)

# 安装mysql容器并运行
docker run \
    --name mysql8 \	
    --restart=always \
    --privileged=true \
    -e MYSQL_ROOT_PASSWORD='123456' \
    -p 3306:3306 \
    -v /opt/software/mysql_docker_3308:/mysql_share \
    -d  3218b38490ce

docker ps								# 查看已安装并正在运行容器
docker exec -it mysql8 /bin/bash		# 进入mysql容器
exit									# 退出mysql容器

主要参数讲解

--name mysql8:给容器取名为mysql8

--restart=always:每当docker启动时总能启动mysql8容器

-e MYSQL_ROOT_PASSWORD:mysql密码

-p 3308:3306:映射容器的3306端口到宿主机的3308端口,外部主机可以直接通过宿主机ip:3308访问到容器的mysql8服务。

-d 3218b38490ce:后台模式下运行指定容器【-d 镜像ID】

Docker中的Mysql与外网连接测试

二:Redis安装

shell 复制代码
docker search redis				# 找到合适的redis镜像
docker pull redis				# 下载redis镜像(默认最新版本)

# 安装redis容器并运行
docker run \
    --name Redis \
    --restart=always \
    --privileged=true \
    -e MY_REDIS_PASSWORD='123456' \
    -p 6379:6379 \
    -d  7614ae9453d1
   
docker ps								# 查看正在运行的容器
docker exec -it mysql8 /bin/bash		# 进入redis容器
exit									# 退出redis容器

主要参数讲解

--name Redis:给容器取名为Redis

--restart=always:每当docker启动时总能启动Redis容器

-e MY_REDIS_PASSWORD:设置Redis的访问密码为123456

-p 6379:6379:映射容器的6379端口到宿主机的6379端口,外部主机可以直接通过宿主机ip:6379访问到容器的Redis服务。

-d 7614ae9453d1:后台模式下运行指定容器【-d 镜像ID】

相关推荐
nuo5342023 小时前
基础 6 —— Docker 容器数据卷
docker·容器
Sinclair4 小时前
安企CMS的安装-Docker 部署
运维·docker·容器
要开心吖ZSH4 小时前
AI医疗分诊与健康咨询助手agent开发——(4-2)从零到一:我给AI医疗分诊助手加了个“知识库大脑“,终于搞懂了RAG是什么
java·docker·agent·医疗·rag
汪汪大队u5 小时前
【无标题】
运维·docker·kubernetes·prometheus
spider_xcxc8 小时前
Docker Compose 容器通信详解:同一个 Compose 文件才能互通吗?
docker·容器·k8s·容器化·容器网络
慧一居士8 小时前
KubePi 功能和使用场景全面介绍
容器
BaiduPHP9 小时前
docker异常断电,出现docker服务,启动失败
docker·容器·eureka
云烟成雨TD10 小时前
Kubernetes 系列【20】服务:EndpointSlice 端点分片
云原生·容器·kubernetes
梦梦代码精11 小时前
多商户商城技术选型实测:ThinkPHP 8与Vue 3结合,B2B2C架构下的开源实践
docker·开源·代码规范
寒冰碧海11 小时前
大模型部署从0到1(三):单机多卡 vLLM 部署Qwen3.6实战|Docker Compose 一键启动
docker·容器·vllm