关于 Docker 入门,这一篇就够了

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 关于 Docker 的一些概念和操作,我争取这一篇博客说完。下面正文开始。

Docker 镜像与容器

说到 Docker ,你会常遇到两个内容:image 和 container (即镜像和容器) 关于镜像和容器,你可以这样来理解:镜像是构建 Docker 的基石,用户基于镜像来运行自己的容器。或者说,镜像是 Docker 生命周期中的构建或打包阶段,而容器则是启动或是执行阶段。好吧,说的再明白点儿,就是有了镜像,才有的容器。容器是在镜像的基础上,才有的。

Docker 安装

以前写过,这里就不赘述了,直接上链接:需要科学上网的安装方法:[Docker]CentOS7下Docker安装教程不需要科学上网的安装方法:[Docker]CentOS7通过rpm包安装Docker

Docker 相关命令

Docker 操作相关命令:

systemctl start docker    启动 docker
systemctl status docker   查看 docker 状态
systemctl stop docker   停止 docker
systemctl enable docker   开机自启
docker info       查看 docker 概要信息
docker --help     查看 docker 帮助文档

镜像相关命令:

查看镜像命令:

docker images

搜索镜像:

docker search 镜像名称

拉取镜像:[Docker]Docker拉取,上传镜像到Harbor仓库删除镜像:[Docker]如何批量删除镜像

容器相关命令:

查看容器:查看正在运行的容器:

docker ps

查看所有容器:

docker ps -a

查看最后一次运行的容器:

docker ps -l

查看停止的容器:

docker ps -f status=exited

创建容器:

docker run

可以在 run 后面加参数。其中:

-i   表示运行容器
-t   表示容器启动后进入其命令行
--name  为创建的容器命名
-v     表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录)
-d     在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行
-p     表示端口映射,前者是宿主机端口,后者是容器内的映射端口

交互式方式创建容器

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

守护式方式创建容器

docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式

docker exec -it 容器名称(或容器 ID) /bin/bash

启动容器:

docker start 容器名称(或容器 ID)

停止容器:

docker stop 容器名称(或容器 ID)

文件拷贝:

将文件拷贝到容器内

docker cp 需要拷贝的文件或目录  容器名称:容器目录

将文件从容器内拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或目录

目录挂载:

在创建容器时,将宿主机的目录与容器内的目录进行映射,这样可以通过修改宿主机某个目录的文件从而去影响容器 创建容器 添加 -v 参数 后边为 宿主机目录:容器目录,完整命令:

docker run  -v 宿主机目录:容器目录

如果共享的是多级目录,可能会出现权限不足的情况 可以通过添加参数 --privileged=true 来解决,因为 CentOS7 中安全模块将 selinux 权限禁掉了,添加此参数,可以将问题解决。

查看容器 IP:

docker inspect 容器名称(容器 ID )

也可以直接输出 IP 地址:

docker inspect --format='{{NetworkSetting。IPAddress}}' 容器名称(容器 ID)

删除容器

docker rm 容器名称(容器 ID)

常见的应用部署

MySQL 部署:

1 ,拉取镜像:

docker pull centos/mysql-57-centos7

2 ,创建容器:

docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7

其中:-p 代表端口映射,格式为 宿主机映射端口:容器运行端口 -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是 root 用户的登录密码 3 ,进入 mysql 容器:

docker exec -it mysql /bin/bash

4 ,登录 mysql :

mysql -u root -p

tomcat 部署:

1 ,拉取镜像

docker pull tomcat:7-jre7

2 ,创建容器

docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/webapps tomcat:7-jre7

Nginx 部署:

1 ,拉取镜像

docker pull nginx

2 ,创建 nginx 容器

docker run -di --name=mynginx -p 80:80 nginx

Redis 部署:

1 ,拉取镜像

docker pull redis

2 ,创建 redis 容器

docker run -di --name=myredis -p 6379:6379 redis

迁移与备份

容器保存为镜像:

docker commit 容器名称 镜像名称

例:

docker commit mynginx mynginx_i

将镜像保存为 tar 文件,例:

docker save -o mynginx。tar mynginx_i

镜像恢复与迁移:-i 输入的文件,例:

docker load -i mynginx。tar

Dockerfile

Dockerfile 是由一系列命令和参数构成的脚本,基于基础镜像,最终创建一个新的镜像,常用命令有:

FROM image_name:tag  定义了使用哪儿个基础镜像启动构建流程
MAINTAINER user_name  声明镜像的创建者
ENV key value   设置环境变量(可以写多条)
RUN command     是 Dockerfile 的核心部分(可以写多条)
ADD source_dir/file dest_dir/file  将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file   和 ADD 相似,但是如果有压缩文件并不能解压
WORDIR path_dir 设置工作目录

需要注意一下,如果要使用 Dockerfile 文件,名字必须为「Dockerfile」,否则里面的命令不会有效。

镜像上传下载到镜像仓库

以前写过博客,感觉还是比较详细的:[Docker]Docker拉取,上传镜像到Harbor仓库(在上面应该也看到过了,再放一次)

关于 Docker 入门,我只能帮你到这儿了~

欢迎加入我们的知识星球,一起成长,交流经验。加入方式,长按下方二维码噢

最后,我想重复一句话:选择和一群优秀的人一起成长,你成长的速度绝对会不一样!

相关文章
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
572 2
|
5月前
|
运维 Kubernetes 开发者
解锁现代开发与部署:Docker入门指南
解锁现代开发与部署:Docker入门指南
220 100
|
3月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
6月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
495 0
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
298 5
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
1015 5
docker入门-快速学会docker
|
10月前
|
Ubuntu Linux Docker
Docker 入门全攻略:安装、操作与常用命令指南
Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
Kubernetes Linux Docker
容器化技术Docker入门与实践
容器化技术Docker入门与实践
208 20
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。

热门文章

最新文章