从零开始 - Docker部署前后端分离项目(一)

简介: Docker是一个开源的应用容器引擎,使用GO语言开发,并利用 Linux 内核的几个特性来提供其功能。Docker 使应用程序与基础设施分开,以便可以快速交付软件。

Docker是一个开源的应用容器引擎,使用GO语言开发,并利用 Linux 内核的几个特性来提供其功能。Docker 使应用程序与基础设施分开,以便可以快速交付软件。

一、前言

此系列的文章基于以下环境:

阿里云服务器ECS

CPU&内存 :1核(vCPU) 2 GiB

操作系统:Ubuntu 20.04 64位


二、安装Docker

安装 docker 最简单的方法是使用官方脚本自动安装

安装命如下:

先保证apt是最新版本,更新apt

apt update

进行docker下载

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

各种 Linux 系统的手动安装步骤见:https://docs.docker.com/engine/install/

1、镜像加速


修改/etc/docker/daemon.json 文件,如果没有先建一个即可


sudo vim /etc/docker/daemon.json


修改配置文件内如下:


{

"registry-mirrors": ["https://registry.docker-cn.com"]

}


然后重启服务


$ sudo systemctl daemon-reload

$ sudo systemctl restart docker


2、验证docker


查看docker服务是否启动:

systemctl status docker

若未启动,则启动docker服务:


systemctl start docker


3、docker开机自启

# 查看是否设置开机启动

systemctl list-unit-files | grep docker.service.*enabled


# 设置开机启动

systemctl enable docker.service


# 关闭开机启动

systemctl disable docker.service


三、容器的常用命令

容器就是根据镜像启动的一个进程,它就是一个运行的系统。

1. 创建容器

根据一个镜像创建容器,命令格式如下:

docker container run [options] image [command]

docker run [options] image [command]

run:就是运行容器的命令

options: 一系列的参数,可以省略

image: 启动容器的镜像

command: 容器要执行的命令

例如:

docker run ubuntu:latest /bin/echo "hello world"

表示根据镜像ubuntu:latest启动一个容器,运行命令/bin/echo "hello world",如果本地没有ubuntu:latest镜像,会自动去仓库下载。

注意,如果容器运行的命令结束了(不管是正常结束,还是有错误结束),容器会退出。

2. 创建容器的常用参数

docker run --name redis -d --network  mwj --restart=always -v redis_data:/data

参数

描述

-i

交互式创建容器

-t

分配一个伪终端

-d

运行容器到后台

-e

设置环境变量

-p

映射容器端口到主机

-h

设置容器主机名

--link

添加连接到另一个容器

--network

连接容器到一个网络

-v

挂载宿主机目录到容器

--restart

容器退出后的重启策略,默认 no[always|failure]

--name

给容器命令

启动容器

启动一个停止的容器

$ sudo docker container start 容器名/ID


docker ps -a #查看所有容器

3. 查看容器

docker container ls

docker ps

# 上面两个命令只能看运行中的容器

docker container ls -a

docker ps -a

# 下面两个命令可以查看所有的容器,包含以退出的容器

4. 停止容器

docker container stop 容器名/id

docker stop 容器名/id

5. 删除容器

docker container rm 容器名/id

docker rm 容器名/id

6. 启动一个退出的容器

docker container start 容器名/id

docker start 容器名/id


相关文章
|
10天前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
深入理解Docker:为你的爬虫项目提供隔离环境
|
4天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
144 91
|
5天前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
20天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
12天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
71 44
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
58 23
|
23天前
|
SQL Java Maven
docker部署apollo
docker部署apollo步骤
|
Java 应用服务中间件 Linux
使用docker部署springboot项目小白教程
使用docker部署springboot项目小白教程
617 0
|
9月前
|
NoSQL Java Redis
利用Docker部署一个简单的springboot项目
利用Docker部署一个简单的springboot项目
227 2
|
9月前
|
Java 关系型数据库 MySQL
docker 部署springboot项目,连接mysql容器
docker 部署springboot项目,连接mysql容器
363 0