首页 > 其他分享 >写给前端:一文了解Docker,快速掌握重点

写给前端:一文了解Docker,快速掌握重点

时间:2023-02-13 00:33:40浏览次数:57  
标签:容器 一文 -- redis 写给 镜像 docker Docker

Docker 是什么

  • 一个应用打包、分发、部署的工具
  • 一个轻量的虚拟机,只虚拟软件需要的运行环境

为什么要使用 Docker?

  • 跨平台,你可以在各种系统里安装docker运行你的服务
  • 性能好,只虚拟软件所需运行环境,最大化减少没用的配置
  • 自动化,一个命令就可以部署运行你的项目
  • 无差异部署

流程简介

  • 在 Windows or Mac 上开发、测试
  • 打包为 Docker 镜像
  • 在docker环境里,一个命令跑起来你的项目

重要名词简介

  • 镜像:就像一个软件包,复制粘贴到其他电脑,一样可以安装使用
  • 容器:一个镜像可以安装N次,每次都可以生成不一样的容器,我们可以用name进行区分,它就像是软件安装以后,软件运行的环境,彼此隔离,我们称它为容器

安装

注意重点(如果你不设置这些的话,服务器重启或者docker 服务重启以后,你的项目会无法自动启动哦~)

设置docker开机启动

查看已启动的服务
systemctl list-units -lype=service

查看是否设置开机启动
systemctl list-unit-files | grep enable

设置开机启动
systemctl enable docker.service

关闭开机启动
systemctl disable docker.service

设置docker容器自动启动

启动时加restart-always
docker run -tid -name 容器id -p 端口号 -restart-always -v 挂载

已经启动的项目.使用update更新:
docker update --restart = always 容器id

restart可选项

  • no 不自动重启容器(这个是默认value)
  • on-failure 容器发生error而退出(容器退出状态不为0)重启容器
  • unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
  • always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

镜像加速

方案一:阿里云:搜索容器服务-镜像加速器

方案二:DaoCloud 道客加速器

配置 Docker 镜像站,该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。

方案三:腾讯加速器

https://mirror.ccs.tencentyun.com

如果遇到无法下载的镜像,可以参考我的文章:

关于使用:举个栗子

我们执行下面的这个命令,就可以跑起来redis了

docker run -d -p 6379:6379 --name redis redis:latest
  • run docker 运行软件
  • -d 后台运行,如果不用这个,关掉命令行就会停止运行
  • -p 6379:6379把容器内部的端口暴露到宿主机 宿主机:容器内
  • --name redis 命名
  • redis:latest下载最新版本的redis镜像

有任何不懂的命令,可以在这里搜索,点击这里

制作自己的镜像

编写 Dockerfile

Build镜像:命令参考文档

docker build -t test:v1 .
  • build 根据Dockerfile构建镜像
  • -t test:v1 -t指定镜像名字,版本号,
  • . 点代表在当前目录

运行镜像:命令参考文档

docker run -p 8080:8080 --name test-hello test:v1

-p 映射容器内端口到宿主机
--name 容器名字
-d 后台运行

常用命令

docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表

目录挂载

为什么使用目录挂载?

  • 修改代码想要立即生效,不想再build run
  • 容器里的数据不可以丢失

如何挂载:文档参考

  • bind mount 把宿主机目录映射到容器内,适合挂代码目录和配置文件,可挂到多个容器上
  • volume 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上
  • tmpfs mount 适合存储临时文件,存宿主机内存中,不可多容器共享。

关于挂载,举个栗子:

  • 挂载后,容器里的代码就会替换为你挂载的代码
  • bind mount 方式用绝对路径 -v D:/code:/app
  • volume 方式,只需要一个名字 -v db-data:/app
    示例:
docker run -p 8080:8080 --name test-hello -v D:/code:/app -d test:v1

容器通信:文档参考

  • 容器互通,需要将其放到同1个网络中

创建一个名为xiaojin的网络:

docker network create xiaojin

运行 Redis 在 xiaojin 网络中,别名redis

docker run -d --name redis --network xiaojin --network-alias redis redis:latest

容器中的代码想要访问redis,就可以这么写

  • 步骤一:使用网络别名
  • 步骤二:运行项目,使用同一个网络
docker run -p 8080:8080 --name test -v D:/test:/app --network xiaojin -d test:v1

Docker-Compose

为什么使用Docker-Compose?

  • 想要一个容器运行多个项目,比如前后端项目,或者其他依赖项目
  • 懒得设置网络什么的,太麻烦,直接全运行到同一个容器

怎么使用

  • 安装文档
  • 运行docker-compose检查是否安装成功
  • 编写脚本docker-compose.yml,将项目多个服务集合在一起-参考文档

关于yml文件,举个栗子

version: "1.0"

services:
  app:
    build: ./
    ports:
      - 8080:8080
    volumes:
      - ./:/app
    environment:
      - TZ=Asia/Shanghai
  redis:
    image: redis:5.0.13
    volumes:
      - redis:/data
    environment:
      - TZ=Asia/Shanghai

volumes:
  redis:

运行服务

在docker-compose.yml 文件所在目录,执行:

docker-compose up -d

docker-compose常用命令

  • 查看运行状态:docker-compose ps
  • 停止运行:docker-compose stop
  • 重启:docker-compose restart
  • 重启单个服务:docker-compose restart service-name
  • 进入容器命令行:docker-compose exec service-name sh
  • 查看容器运行log:docker-compose logs [service-name]

连接到远程Docker引擎

为什么要远程访问Docker?

  • 可以使用http协议,获取json格式数据,很方便
  • 使用代码控制镜像,so easy

怎么配置才可以远程访问呢?

今天就写到这里啦~

  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

标签:容器,一文,--,redis,写给,镜像,docker,Docker
From: https://www.cnblogs.com/sugartang/p/17085139.html

相关文章

  • Docker第四章:Dockerfile、微服务、网络连接、compose容器编排、容器监控
    Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本、 执行流程1:docker从基础镜像运行一个容器2:执行一条指令并对容器作出修改......
  • MAC 安装docker,下载镜像并压缩转移到LINUX服务器
    MAC安装docker前提-已经安装homebrew(如果未安装,可以打开终端,输入以下命令安装Homebrew)/usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/i......
  • Docker的数据管理
    一、管理docker容器中数据管理Docker容器中数据主要有两种方式:数据卷(DataVolumes)和数据卷容器(DataVolumesContainers)。1、数据卷数据卷是一个供容器使用的特......
  • Docker-compose
    一、Docker-compose简介Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务......
  • docker之安装部署Harbor
    1、提前准备好docker环境安装好openssl后面使用yuminstallopensslopenssl-devel-y2、下载harbor包并解压我这边直接官网找到2.7.0比较新的版本 ​​https://github.......
  • Docker学习
    Docker学习Docker是一个开源的应用容器引擎,让开发者可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟......
  • docker-compose
    安装Docker-Compose:官方文档安装curl-L"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/b......
  • docker-network
    DockerNetWork官网Docker容器和服务如此强大的原因之一是您可以将它们连接在一起,或者将它们连接到非Docker工作负载。Docker容器和服务甚至不需要知道它们部署在Do......
  • docker-run
    Dockerrun命令:--add-hostlistAddacustomhost-to-IPmapping添加一个host到ip的映射dockerrun-it--add-hosthostname1:192.168.1.2--add-hosthostname......
  • docker-volume
    dockervolume[root@localhost128home]#dockervolume--helpUsage:dockervolumeCOMMANDManagevolumesCommands:##创建一个容器卷createCreatea......