(1) docker构成
(2). 在操作docker之前我们要了解一下docker hub一个类似于github的镜像管理网站。如下图所示
基本上docker的镜像都是从这个地方拉取的
,接下来我们实际操作一下。
我们先将镜像(Image)和容器(Container)。以实际搭建一个nginx的静态页网站为例。下面是实例教程:
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;"]
$ docker build . -t nginx:v1 -f Dockerfile
docker build -- docker 命令
. -- 当前路径
nginx:v1 -- 镜像的名称,可以自定义
-f Dockerfile -- 当前Dockerfile文件
构建完毕。可以用docker images
查看当前构建的镜像,如果不想本地构建,可以直接使用docker pull nginx:alpine
拉取最新镜像
$ 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页面。至此容器的简单操作完毕,其他命令的使用我们会在后续的课程中详细讲解。
$ docker exec -ti my-nginx-alpine /bin/sh
docker exec -- docker 命令
-ti my-nginx-alpine -- 容器名称
/bin/sh -- 命令的后缀,有时可以写/bash
$ docker pull images-name #images-name镜像名
$ docker images #列举当前系统镜像
$ docker run --name my-nginx-alpine -d nginx:alpine
$ docker exec -ti my-nginx-alpine /bin/sh
#告诉docker使用哪个基础镜像作为模板,后续命令都以这个镜像为基础
FROM ubuntu
#RUN命令会在上面指定镜像中执行
RUN apt-get update && apt install -y nginx
#告诉docker,启动容器是执行如下命令
CMD ["/usr/sbin/nginx","-g","daemon off;"]
$ docker build . -t my-nginx:ubuntu -f Dockerfile
#删除旧服务,重新启动
$ 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
#导出
$ docker save -o nginx-alpine.tar nginx:alpine
#导入
$ docker load -i nginx-alpine.tar
将本地文件拷贝到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/
【云原生kubernetes从入门到实践 ] 一.docker安装
【云原生kubernetes从入门到实践 ] 三.docker私有镜像源
【云原生kubernetes从入门到实践 ] 四.docker volumes 持久化
【云原生kubernetes从入门到实践 ] 五.docker网络介绍
【云原生kubernetes从入门到实践 ] 六.docker应用容器实践
【云原生kubernetes从入门到实践 ] 一.k8s 集群介绍
【云原生kubernetes从入门到实践 ] 二.k8s 集群理解
【云原生kubernetes从入门到实践 ] 三.k8s yaml编写即开发
【云原生kubernetes从入门到实践 ] 四.k8s deploy介绍
【云原生kubernetes从入门到实践 ] 五.k8s service访问
【云原生kubernetes从入门到实践 ] 六.k8s etcd数据库操作
【云原生kubernetes从入门到实践 ] 七.k8s 网络配置
【云原生kubernetes从入门到实践 ] 八.k8s 认证授权
【云原生kubernetes从入门到实践 ] 一.k8s Rancher部署
【云原生kubernetes从入门到实践 ] 二.Prometheus监控
【云原生kubernetes从入门到实践 ] 三.k8s Grafana展示
【云原生kubernetes从入门到实践 ] 四.k8s Alertmanager告警
【云原生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 多环境部署
【云原生kubernetes从入门到实践 ] 一.k8s Python Flask项目交付
【云原生kubernetes从入门到实践 ] 二.k8s Vue项目交付
【云原生kubernetes从入门到实践 ] 三.k8s Springcloud项目交付