【云原生kubernetes从入门到实践系列教程 ] 二.docker操作

基础教程

1.相关知识

(1) docker构成

  • 镜像(Image): 文件生成的容器实例,本身也是一个文件,称为镜像文件。
  • 容器(Container):运行承载一种服务,相当于给你写的服务套了一层壳,可以通过docker客户端创建一个对应的运行实例。等学会docker后,部署服务简直不要太简单。
  • 仓库(Registry):保存用户创建的镜像,仓库分共有和私有两种。Docker公司自己提供了最大的公有仓库Docker Hub。

(2). 在操作docker之前我们要了解一下docker hub一个类似于github的镜像管理网站。如下图所示
在这里插入图片描述
基本上docker的镜像都是从这个地方拉取的,接下来我们实际操作一下。

2.案例讲解

我们先将镜像(Image)和容器(Container)。以实际搭建一个nginx的静态页网站为例。下面是实例教程:

(1). 创建Dockerfile

vim Dockerfile写入一下内容

#告诉docker使用哪个基础镜像作为模板,后续命令都以这个镜像为基础
FROM nginx:alpine
LABEL maintainer="linming"
# 设置编码
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8

# 设置镜像源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
    && apk update \
    && apk add --no-cache tzdata \
    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

    
# 设置时区
ENV TZ Asia/Shanghai

# 开启80端口
EXPOSE 80
# docker执行命令
CMD ["nginx", "-g", "daemon off;"]
(2). 本地构建镜像
$ docker build . -t nginx:v1 -f Dockerfile
  • docker build -- docker 命令
  • . -- 当前路径
  • nginx:v1 -- 镜像的名称,可以自定义
  • -f Dockerfile -- 当前Dockerfile文件

在这里插入图片描述
构建完毕。可以用docker images 查看当前构建的镜像,如果不想本地构建,可以直接使用docker pull nginx:alpine 拉取最新镜像

(3).创建镜像容器
$ docker run --name my-nginx-alpine  -p 8080:80 -d nginx:v1
  • docker run -- docker 命令
  • --name my-nginx-alpine -- 容器名称
  • -p 8080:80 --宿主机与容器的映射端口
  • -d nginx:v1 -- 使用的镜像

至此,容器构建完毕,可以使用docker ps 查看当前容器。
注:如果容器启动失败,可使用 docker logs 容器ID查看日志
在这里插入图片描述
最后防火墙开8080端口,浏览器访问docker机器所在的ip,port ,http://ip:8080,你就可以看到一个熟悉的nginx的index页面。至此容器的简单操作完毕,其他命令的使用我们会在后续的课程中详细讲解。
在这里插入图片描述

(4).进入容器
$ docker exec -ti my-nginx-alpine /bin/sh
  • docker exec -- docker 命令
  • -ti my-nginx-alpine -- 容器名称
  • /bin/sh -- 命令的后缀,有时可以写/bash
3.个人笔记
(1).拉取镜像
$ docker pull images-name #images-name镜像名
$ docker images #列举当前系统镜像
(2).创建镜像容器
$ docker run --name my-nginx-alpine -d nginx:alpine
(3).进入容器
$ docker exec -ti my-nginx-alpine /bin/sh
(5). 创建Dockerfile
#告诉docker使用哪个基础镜像作为模板,后续命令都以这个镜像为基础
FROM ubuntu
#RUN命令会在上面指定镜像中执行
RUN apt-get update && apt install -y nginx
#告诉docker,启动容器是执行如下命令
CMD ["/usr/sbin/nginx","-g","daemon off;"]
(6). 本地构建
$ docker build . -t my-nginx:ubuntu -f Dockerfile
(7). 宿主机访问
#删除旧服务,重新启动
$ docker rm -f my-nginx-alpine
$ docker run --name my-nginx-alpine -d -p 8080:80 nginx:alpine
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
$ curl ip:80
(8).导出/导入镜像
#导出
$ docker save -o nginx-alpine.tar nginx:alpine
#导入
$ docker load -i nginx-alpine.tar
(9).docker镜像内文件和宿主机互相拷贝

将本地文件拷贝到docker 镜像内

# docker cp 本地路径 容器Id或name:容器目录 
$ docker cp /home/jackson.jar elasticsearch:/opt/soft/jars/

将docker内文件拷贝到本地文件夹内

# docker cp 容器Id或name:镜像路径 本地路径
$ docker cp elasticsearch:/opt/soft/jars/jackson.jar  /home/alex/jars/ 

------------------------------------------------------------------------------------------------------

课程链接

docker基础操作

【云原生kubernetes从入门到实践 ] 一.docker安装

【云原生kubernetes从入门到实践 ] 二.docker操作

【云原生kubernetes从入门到实践 ] 三.docker私有镜像源
【云原生kubernetes从入门到实践 ] 四.docker volumes 持久化
【云原生kubernetes从入门到实践 ] 五.docker网络介绍
【云原生kubernetes从入门到实践 ] 六.docker应用容器实践

k8s 基础操作

【云原生kubernetes从入门到实践 ] 一.k8s 集群介绍
【云原生kubernetes从入门到实践 ] 二.k8s 集群理解
【云原生kubernetes从入门到实践 ] 三.k8s yaml编写即开发
【云原生kubernetes从入门到实践 ] 四.k8s deploy介绍
【云原生kubernetes从入门到实践 ] 五.k8s service访问
【云原生kubernetes从入门到实践 ] 六.k8s etcd数据库操作
【云原生kubernetes从入门到实践 ] 七.k8s 网络配置
【云原生kubernetes从入门到实践 ] 八.k8s 认证授权

k8s 运维监控

【云原生kubernetes从入门到实践 ] 一.k8s Rancher部署
【云原生kubernetes从入门到实践 ] 二.Prometheus监控
【云原生kubernetes从入门到实践 ] 三.k8s Grafana展示
【云原生kubernetes从入门到实践 ] 四.k8s Alertmanager告警

k8s Devops自动化部署

【云原生kubernetes从入门到实践 ] 一.k8s DevOps平台实践
【云原生kubernetes从入门到实践 ] 二.k8s Pipline流水线
【云原生kubernetes从入门到实践 ] 三.k8s 多分支流水线
【云原生kubernetes从入门到实践 ] 四.k8s Jenkins容器集成
【云原生kubernetes从入门到实践 ] 五.k8s SonarQube代码扫描
【云原生kubernetes从入门到实践 ] 六.k8s RobotFramework集成
【云原生kubernetes从入门到实践 ] 七.k8s SharedLibrary进行CICD
【云原生kubernetes从入门到实践 ] 八.k8s sharedLibrary集成K8S服务部署
【云原生kubernetes从入门到实践 ] 九.k8s 多环境部署

k8s 项目交付

【云原生kubernetes从入门到实践 ] 一.k8s Python Flask项目交付
【云原生kubernetes从入门到实践 ] 二.k8s Vue项目交付
【云原生kubernetes从入门到实践 ] 三.k8s Springcloud项目交付

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry-sky(jing)

一起共勉,一起加油!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值