从零开始 - 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