首页 > 其他分享 >docker保持环境一致、镜像、容器、仓库、配置加速器、命令、dockerfile、部署django、编排工具、yaml、

docker保持环境一致、镜像、容器、仓库、配置加速器、命令、dockerfile、部署django、编排工具、yaml、

时间:2022-12-23 13:02:36浏览次数:48  
标签:容器 5000 mycentos django yaml 镜像 docker

如何保持环境一致?

pip3 freeze > requerment.txt

pip install -r requerment.txt

1.环境不一致

2.配置文件不一致

3.技术水平不一致,导致部署环境快慢不一致

docker

  • 一处编译,到处运行
  • 对系统的消耗不是特别的多
  • 可以快速启动
  • 维护简单
  • 扩展容易

镜像

可以理解为操作系统的ios镜像

容器

启动后的镜像

仓库

镜像

私有的仓库

公共的仓库

docker-ce 社区版本

docker-ee 商业版本

底层实现原理

namespace

cgroup

linux 内核的技术

安装

cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce

配置加速器

vim  /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
systemctl daemon-reload
systemctl restart docker
systemctl start docker

第一个命令

docker run hello-world

docker 搜索镜像

docker search mysql
NAME DESCRIPTION STARS OFFICIAL
mysql MySQL is a widely used, open-source relation… 8560 [OK]
name 名字
DESCRIPTION 描述信息
STARS 点赞数
OFFICIAL 是否是官方提供
docker pull centos

查看镜像命令

docker images

docker 镜像是分层的

docker pull mysql:5.7

显示镜像的id

docker images -q

列出部分镜像

docker images mysql

删除镜像

docker rmi name|id

删除全部镜像

docker rmi `docker images -q`

启动容器

docker run 镜像名称
先查找本地是否存在镜像
如果不存在则去下载镜像
下载以后再启动
容器启动以后在原来的镜像基础上在新建一层

查看容器

docker ps  #默认查询是运行中的容器
-a 查看所有的
-q 只查看容器的id

容器执行命令

docker run centos /bin/echo 'hongxu'

启动并进入镜像

docker run -ti centos /bin/bash
-t 创建一个虚拟终端
-i 将容器的标准输入保持打开
退出 exit
ctrl +d
--name 指定名字
-d 后台运行
—P 将容器的端口暴露在宿主机的随机端口上
-p 宿主机端口:容器端口
-v 宿主机目录:容器指定目录(可以实现将宿主机目录挂载到容器中)

制作自己的镜像

docker commit -m "xinx" mycentos:laster

导出镜像

docker save -o mycentos.tar.gz mycentos
docker save mycentos > mycentos.tar.gz

删除容器

docker rm # 默认只能删除未运行的容器
-f 强制删除

导入镜像

docker load -i mycentos.tar.gz
docker load < mycentos.tar.gz

scp

linux之间互相传递文件

查看端口映射关系

docker port 容器id或者容器名称

关闭docker容器

docker stop 容器id或者容器名称

启动docker容器

docker start  容器id或者容器名称

获取容器的运行状态

docker stats  容器id或者容器名称

查看日志

docker logs  容器id或者容器名称
-f 实时输出

进入容器

docker exec -ti  容器id或者容器名称 /bin/bash

移除所有停止状态的容器

docker container prune

dockerfile

FROM mycentos  # 指定基础镜像
COPY epel.repo /etc/yum.repos.d/ # 复制文件
RUN yum install -y nginx # 运行命令
RUN mdkir /data/html
RUN echo 'mynginx' > /data/html/index.html
COPY nginx.conf /etc/nginx/nginx.conf #只复制
ADD # 复制并解压压缩包
ENV alex=alexdsb # 设置环境变量
ENV wulaoban=dsb
WORKDIR /data/html # 设置工作目录,exec进入之后直接进入的目录
EXPOSE 80 # 设置端口
VOLUME # 指定容器的目录
CMD /bin/bash -c systemctl start nginx # 运行命令
RUN和CMD的区别
RUN可以有多个
CMD只能有一个,如果有多个到话,按最后一个算

build

docker build -t name:tag -f dockerfile .

部署django

FROM mycentos
COPY epel.repo /etc/yum.repos.d/
RUN yum install -y python36 python36-pip python36-devel
RUN pip3 install django==1.11 pymysql django-multiselectfield -i https://pypi.douban.com/simple
COPY supercrm /data/supercrm
WORKDIR /data/supercrm
RUN python3 manage.py migrate
EXPOSE 8080
CMD python3 manage.py runserver 0.0.0.0:8080

远程仓库

docker login   #登录dockerhub网站
docker tag django wangfeng7399/django # 修改名称
docker push wangfeng7399/django # 上传

本地仓库

本地仓库默认使用是https

docker run -p 5000:5000 -d -v /opt/data/registry:/var/lib/registry registry
docker tag django 127.0.0.1:5000/django
docker push 127.0.0.1:5000/django
## 检查
curl 127.0.0.1:5000/v2/_catalog
{"repositories":["django"]}

解决办法:

cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
],
"insecure-registries": [
"192.168.21.128:5000"
]

}
docker tag django 192.168.21.128:5000/django
docker push 192.168.21.128:5000/django

docker 编排工具

  • swarm
  • mesos
  • k8s
  • kubernetes
  • compose 嫡系
pip3 install docker-compose

语法是基于yaml

  • 列表 -
  • 字典 key: value
  • 后缀名 yaml yml

yaml文件

默认是docker-compose.yml

-f 文件

version: '3.4'
services:
web:
build: #编译
context: .
dockerfile: flaskdf
ports: #指定端口
- "15000:5000"
redis:
image: 'redis' # 指定镜像文件

启动命令是

docker-compose up



标签:容器,5000,mycentos,django,yaml,镜像,docker
From: https://blog.51cto.com/u_15920572/5965377

相关文章

  • 解决 Docker 的 DeviceMapper 占用空间过大
    某虚拟机运行容器半年后,磁盘空间报警,使用率超过百分之九十。经查后发现为Docker的DeviceMapper占用空间过大。概述DeviceMapper为容器的镜像和运行过程的缓存存放目......
  • Dockerfile介绍及常用保留指令
    从本文开始,咱们将介绍docker的另外一个技术点:dockerfile.我们来看看DockerFile相关的知识点,我们将怎么学习?1:DockerFile是什么?2:DockerFile构建过程解析3:常用的保留字指令4:案......
  • docker中mysql配置主从
    创建文件夹&编辑my.cnf内容mkdir-p/opt/docker/mysql-8.0/master/cnfmkdir-p/opt/docker/mysql-8.0/master/datavim/opt/docker/mysql-8.0/master/cnf/mysql.cnf[......
  • docker 安装 postgres 15.1
    docker拉取镜像:dockerpullpostgres:15.1创建文件夹,以及启动images创建文件夹:mkdir-p/opt/docker/postgresdockerrun--namepostgres\-ePOSTGRES_PASS......
  • Dockerfile介绍及常用保留指令
    从本文开始,咱们将介绍docker的另外一个技术点:dockerfile.我们来看看DockerFile相关的知识点,我们将怎么学习?1:DockerFile是什么?2:DockerFile构建过程解析3:常用的保留字指令......
  • Docker 架构演进之路
    转载:https://developer.aliyun.com/article/673009前言Docker已经推出了5年,在这5年中它极大的改变了互联网产品的架构,推进了新的产品开发、测试和运维方法。但是它自身也在......
  • Jenkins+Docker 一键自动化部署 SpringBoot 项目
    Jenkins+Docker一键自动化部署SpringBoot项目 本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(git......
  • Django序列化器配置分页器
    1.编写分页器方法fromrest_frameworkimportpaginationclassPagination(pagination.PageNumberPagination):defget_paginated_data(self,data):ret......
  • Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令
    场景Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/12839905......
  • Ubuntu:Docker 容器操作
    创建容器1.dockerrun[option]镜像名[向启动容器中传入的命令]常用可选说明-i表示以“交互模式”运行容器-t表示容器启动后会进入其命令行。加入这两个参数......