Docker入门使用指南

简介: Docker入门使用指南

3.jpg


1. 入门使用:


必会命令


  1. 拉取镜像: docker pull nginx
  2. 查看镜像: docker images/docker images nginx
  3. 启动镜像(将www目录和nginx/html进行映射):
  1. 前台启动: docker run -p 8000:80 -v $PWD/www:/usr/share/nginx/html nginx
  2. 后台启动: docker run -d -p 8000:80 -v $PWD/www:/usr/share/nginx/html nginx
  1. 容器存在: docker start <容器ID>
  2. 停止容器: docker stop <容器ID>
  3. 查看运行进程: docker ps
  4. 进入容器: docker exec -it <容器ID> /bin/bash
  5. 删除容器: docker rm <容器ID>


2. 定制镜像


案例1(Nginx):

  1. 创建Dockerfile文件
# 镜像内容
FROM nginx:latest
RUN echo '<h1>Hello Docker</h1>' > /usr/share/nginx/html/index.html


  1. 编译
//docker build -t <定制镜像名> 当前目录
docker build -t nginx:ospoon .


  1. 启动
docker run -p 8000:80 nginx:ospoon


案例2(Node):

  1. 创建目录: mkdir node-koa
  2. 初始化: cd node-koa & npm i koa -S
  3. 创建koa服务:
const Koa = require("koa");
const app = new Koa();
app.use((ctx) => {
  ctx.body = "Hello NodeJs";
});
app.listen(3000, () => {
  console.log("app started at 3000");
});


  1. 编写Dockerfile
FROM node:10-alpine
# 拷贝当前目录到容器/app目录
ADD . /app/
# 进入工作目录
WORKDIR /app
# docker build 过程中运行
RUN npm install
# 暴露端口
EXPOSE 3000
# 容器运行时执行
CMD ["node","app.js"]
  1. 编译镜像: docker build -t node-koa .
  2. 启动: docker run -d -p 3000:3000 node-koa


案例3(pm2):

  1. 拷贝案例2: cp -R node-koa pm2-koa
  2. 编写pm2相关的yml文件
apps:
  - script: app.js
    # 进程数
    instances: 2
    # 监听模式
    watch: true
    env:
      # 运行环境
      NODE_ENV: production


  1. 编写Dockerfile
FROM keymetrics/pm2:latest-alpine
# 工作目录
WORKDIR /usr/src/app
ADD . /usr/src/app
# 通过 && \ 连接两条命令
RUN npm config set registry https://registry.npm.taobao.org/ && \
    npm i
# 暴露端口
EXPOSE 3000
# pm2在docker中的使用命令为pm2-docker
CMD ["pm2-runtime","start","process.yml"]


  1. 编译镜像: docker build -t pm2-koa .
  2. 启动: docker run -d -p 3000:3000 pm2-koa


3. docker-compose


负责实现对Docker容器集群的快速编排


案例:

  1. 编写配置文件: docker-compose.yml
# docker-compose.yml mongo + mongo-express
version: '3.1'
services:
  mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017
  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081


  1. 运行: docker-compose up



相关文章
|
3天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
13 2
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
83 5
|
1月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
5天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
11天前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
47 2
|
19天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
26 3
|
24天前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
43 2
|
30天前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
1月前
|
Ubuntu Linux 虚拟化
Docker入门实践(一)
Docker入门实践(一)