前端开发从 0 到 1 掌握 docker

文章目录

  • [前端从 0 到 1 掌握 docker](#前端从 0 到 1 掌握 docker)

    • [一、docker 的一些基础概念](#一、docker 的一些基础概念)
      • 概念定义
      • [question:什么是docker? 为什么要使用docker?](#question:什么是docker? 为什么要使用docker?)
    • 二、实战操作 (墙裂建议读者实操一遍)
      • [Part1 - Linux CentOS 服务安装 Docker](#Part1 - Linux CentOS 服务安装 Docker)
      • [Part2 - 启动、使用、查看等命令](#Part2 - 启动、使用、查看等命令)
      • [Part3 - 示例:docker 容器运行](#Part3 - 示例:docker 容器运行)
      • [Part4 - 自己写 Dockerfile 创建镜像](#Part4 - 自己写 Dockerfile 创建镜像)
    • [三、Docker 常见命令汇总](#三、Docker 常见命令汇总)
  • 对 docker 不是很清楚,但是有对docker感兴趣的同学建议可以看一看该文。.

  • 强烈建议跟着 " 实战操作 " 部分一起动手操作,自己亲自操作理解会更加深刻。

前端从 0 到 1 掌握 docker

一、docker 的一些基础概念

概念定义

  1. Docker images:

    Docker 镜像,容器运行的只读模板,操作系统+软件运行环境+用户程序

  2. Docker containers:

    Docker 容器,包含某个应用运行所需要的全部环境

  3. Docker Stash:

    Docker 仓库,用来保存镜像,有公有和私有仓库

question:什么是docker? 为什么要使用docker?

  • 什么是Dokcer

    百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  • 简单来说:

    就是可以快速部署启动应用,实现虚拟化,完整资源隔离。

    一次编写,四处运行

二、实战操作 (墙裂建议读者实操一遍)

  • 笔者在梳理相关命令时按实操情况,理解难易,简单分类了一下。关键的操作步骤会提供截图参考,希望大家也能小手动起来!(QAQ)

Part1 - Linux CentOS 服务安装 Docker

# 更新yum源。
yum update

# 安装Docker
yum install docker-io -y

# 运行Docker
systemctl start docker

Part2 - 启动、使用、查看等命令

# 运行Docker守护进程
systemctl start docker

# 查看Docker状态
systemctl status docker

# 查看Docker信息
docker info

# 停止Docker守护进程
systemctl stop docker

# 重启Docker守护进程
systemctl restart docker

Part3 - 示例:docker 容器运行

# 运行 nginx 镜像的容器
docker run --name mydocker-nginx -p 8080:80 -d nginx

# 其中:
--name mydocker-nginx:容器的名字叫做mydocker-nginx,名字自己定义
-p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d:容器启动后,在后台运行
  • 运行 nginx 镜像容器 命令行截图:

  • 验证结果截图:

    成功访问nginx容器

    运行 mysql 镜像的容器

    docker run --name mysql5.7 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345 -v /home/vagrant/mysql5.7/data:/var/lib/mysql -d mysql:5.7

  • 运行 mysql 镜像容器 命令行截图:

  • 连接容器中的 mysql 数据库 截图:

    访问成功哦!

  • 我们可以发现,其实本地开发环境如果需要用到 mysql、ng等等是不是可以直接用 docker 启动对应容器呢,这样可以随时迁移我们的开发环境。

Part4 - 自己写 Dockerfile 创建镜像

  • 一、 创建目录 DockerStudy

  • 二、 目录中创建一个 index.html 文件,内容如下

    ...

    Hello docker

    Hello docker

    Hello docker

    ...

  • 三、 再在目录中创建一个 Dockerfile 文件,内容如下

    FROM nginx

    COPY ./index.html /usr/share/nginx/html/index.html

    EXPOSE 80

此时 DockerStudy 目录如下

DockerStudy
  |____index.html
  |____Dockerfile
  • 四、 打包镜像

    cd /usr/local/DockerStudy

    docker image build ./ -t docker-study:1.0.1

    docker images

index.html 和 dockerfile 的内容:

我是本地写好再上传到 Linxu 终端

进入对应目录,打包镜像,查看镜像的命令行截图:

  • 五、 根据镜像创建容器

    docker container create -p 12555:80 docker-study:1.0.1

    刚刚使用 Dockerfile 创建了一个镜像,根据刚刚创建的镜像,创建一个容器

    docker start a18bd2a88d14

    运行容器, a18bd2a88d14 为你自己的容器 id

根据镜像创建容器 的截图:
去对应端口验证一下我们自己写的 DockerFile创建的镜像容器是否运行成功

三、Docker 常见命令汇总

  • 搜索镜像:

    docker search xxx

  • 列出当前系统存在的镜像:

    docker images

  • 拉取镜像:

    docker pull xxx

  • 运行容器

    docker run --name xdclass-nginx -p 8080:80 -d nginx

    docker run - 运行一个容器, name 或者 containerId
    -d 后台运行
    -p 端口映射
    --name "xxx" 容器名称

  • 列举当前正在运行的容器:

    docker ps

  • 列举全部容器:

    docker ps -a

  • 检查容器内部信息:

    docker inspect name/containerId

  • 删除镜像:

    docker rmi IMAGE_NAME/containerId

  • 停止某个容器:

    docker stop 容器名称

  • 启动某个容器:

    docker start 容器名称

  • 移除某个容器:

    docker rm 容器名称 (容器必须是停止状态)

  • 查看容器启动日志

    docker logs -f 容器 id

相关推荐
misakivv28 分钟前
Centos7.9 使用 Kubeadm 自动化部署 K8S 集群(一个脚本)
运维·云原生·容器·kubernetes·自动化
魏大橙1 小时前
长亭WAF绕过测试
android·运维·服务器
小小不董2 小时前
Oracle DB运维常用的视图及数据字典
运维·数据库·oracle·dba
中国云报2 小时前
黎巴嫩BP机爆炸事件启示录:我国应加快供应链安全立法
运维·网络·安全
linnux领域2 小时前
使用思科搭建企业网规划训练,让网络全部互通,使用规则提高工作效率。
运维·服务器·网络
周湘zx3 小时前
k8s下的网络通信与调度
linux·运维·云原生·容器·kubernetes
楠神说软件测试3 小时前
简单接口自动化框架实现(Python+requests+pytest)
运维·自动化·pytest
追梦不止~3 小时前
如何提高UI自动化的稳定性
运维·自动化
qq_339191144 小时前
docker 创建showdoc服务 showdoc容器部署教程
运维·docker·容器
FHKHH4 小时前
计算机网络第二章:作业 2: UDP ping 程序
运维·服务器·vscode·计算机网络·ubuntu·udp