前端开发从 0 到 1 掌握 docker

文章目录

  • 前端从 0 到 1 掌握 docker
    • 一、docker 的一些基础概念
      • 概念定义
      • question:什么是docker? 为什么要使用docker?
    • 二、实战操作 (墙裂建议读者实操一遍)
      • Part1 - Linux CentOS 服务安装 Docker
      • Part2 - 启动、使用、查看等命令
      • Part3 - 示例:docker 容器运行
      • Part4 - 自己写 Dockerfile 创建镜像
    • 三、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 镜像容器 命令行截图:
    前端开发从 0 到 1 掌握 docker_第1张图片
  • 验证结果截图:
    前端开发从 0 到 1 掌握 docker_第2张图片
    成功访问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 镜像容器 命令行截图:
    前端开发从 0 到 1 掌握 docker_第3张图片

  • 连接容器中的 mysql 数据库 截图:
    前端开发从 0 到 1 掌握 docker_第4张图片
    访问成功哦!

  • 我们可以发现,其实本地开发环境如果需要用到 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 的内容:
前端开发从 0 到 1 掌握 docker_第5张图片
我是本地写好再上传到 Linxu 终端

进入对应目录,打包镜像,查看镜像的命令行截图:
前端开发从 0 到 1 掌握 docker_第6张图片

  • 五、 根据镜像创建容器
docker container create -p 12555:80 docker-study:1.0.1

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

docker start a18bd2a88d14

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

根据镜像创建容器 的截图:
前端开发从 0 到 1 掌握 docker_第7张图片去对应端口验证一下我们自己写的 DockerFile创建的镜像容器是否运行成功
前端开发从 0 到 1 掌握 docker_第8张图片

三、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

你可能感兴趣的:(docker,容器,运维)