Docker 容器化技术初探

  本文主要从以下几个方面简要介绍一下docker以及简单demo使用,并不会深入分析docker的原理等内容。

一、什么是docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包其应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,实现了应用程序与基础设施的隔离,使应用程序能够从一个计算环境快速可靠地运行到另一个计算环境,达到快速交付、测试和部署。

二、docker解决什么问题

本质上是解决物理机部署过程中存在的问题:

1 成本高 - 需要购买一台实体机器,没办法共享
2 部署慢 - 发布一个应用需要走漫长的流程
3 资源浪费 - 平时应用实际用不到那么多物理资源
4 硬件限制 - 不同硬件厂商有兼容问题
5 不利于迁移扩展 - 如果想迁移到其他服务器上,需要重头打包配置应用依赖

三、docker基本概念

concept

四、docker常用命令

docker images 显示所有镜像信息
docker ps 显示所有正在运行的容器信息
docker ps -a 显示所有容器信息
docker run 镜像名称 docker运行一个容器
docker build -t 镜像名称 根据dockerfile构建镜像
docker stop/start 容器id 暂停/启动容器
docker rm 容器id 删除所有暂停的容器
docker rmi 镜像名称 删除镜像
docker exec -ti 容器id /bin/bash 交互方式进入docker
docker logs -f 跟踪容器日志
docker cp 容器ID:file-path local-path 将容器内的文件复制到本机

五、docker 示例说明

示例是用go写的一个财经信息推送的服务,项目见【https://github.com/HelloMrShu/cls-go

1 非docker模式运行

1 go build -o ./bin/finance
2 ./bin/finance &

2 docker模式运行
Dockerfile指令
dockerfile directive

创建Dockerfile文件,内容如下:

FROM golang:1.16
ENV TZ=Asia/Shanghai
ENV GO111MODULE=on
ENV GOOS=linux
ENV	GOPROXY=https://goproxy.cn

WORKDIR /opt/projects/cls
COPY . /opt/projects/cls

ADD go.mod .
RUN go mod download

RUN go build .

ENTRYPOINT ["./finance"]

1 在项目目录下,执行docker build -t cls .,构建镜像
2 docker run cls 运行容器
3 ps aux | grep finance 查看是否正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值