docker简介

Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。

docker的三大概念

  镜像:我们可以理解为系统盘的dvd镜像,轻量级的镜像文件

  仓库:存储docker镜像

  容器:是基于镜像运行的,容器实例

docker的安装

1.安装docker

  yum install docker -y

2.启动docker

  systemctl  start docker

3.docker加速器下载,以及配置 

  curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
  会生成一个docker配置文件,路径是/etc/docker/daemon.json

4.配置了docker加速器,需要重启docker

  systemctl restart docker

docker基本命令

  增:

    docker pull 镜像名字   #下载镜像

    docker run 镜像名字  #运行镜像,产生容易实例

    docker run -it 镜像名字 /bin/bash  参数解释: -i 交互式的命令操作 - t 开启一个终端提供访问  /bin/bash  指定shell解释器

    docker run -it --rm 94e /bin/bash      --rm 运行容器,退出后,删除容器记录

    docker run -d centos /bin/sh -c "while true;do echo 好嗨哦,感觉人生到达了巅峰; sleep 1;done"

      -d 后台运行 

      centos 指定镜像文件
      /bin/sh 指定shell解释器
      -C 指定一个shell语句

  删:

   docker rm 容器id

   docker rm `docker ps -aq`   批量删除容器记录

   docker rm -f `docker ps -aq` 强制删除所有的容器记录

   docker rmi 镜像id   删除镜像记录

   docker  rmi `docker images -aq` 批量删除镜像文件

  改:

   docker tag 镜像id 新的名字   修改docker镜像名,tag标记名

   docker run  --name  myredis 94e  /bin/bash

  查:

   docker image ls   查看docker镜像的命令

   docker  images   #等于上述命令,产看镜像

   docker container ls   查看正在运行的容器进程

   docker ps       只能查看正在运行的容器

   docker ps -a  查看所有的容器记录

   docker search centos   查看docker镜像记录

   docker logs  容器id  查看容器空间内的日志

   docker logs -f 不间断的打印容器内日志信息

   docker exec -it 容器id /bin/bash   #进入正在运行的容器空间

  启动和停止

   docker stop 容器id

   docker start 容器id

######注意:docker容器必须有后台程序在运行,否则就退出

学习Dockerfile

#制作base image 基础镜像,尽量使用官方的image作为base image
FROM scratch
#使用base image
FROM centos
FROM ubuntu:14.04 #带有tag的base image
#指定一个基础镜像 LABEL version=“1.0” #容器元信息,帮助信息,Metadata,类似于代码注释
LABEL maintainer=“yc_uuu@163.com" #对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
RUN yum update && yum install -y vim \
Python-dev #反斜线换行
RUN /bin/bash -c "source $HOME/.bashrc;echo $HOME” #run指令是一个万能指令 WORKDIR /root #相当于linux的cd命令,改变目录,尽量使用绝对路径!!!不要用RUN cd
WORKDIR /test #如果没有就自动创建
WORKDIR demo #再进入demo文件夹 #ADD是添加文件,从物理机本地,添加到容器空间内 ADD and COPY
ADD hello / #把本地文件添加到镜像中,吧本地的hello可执行文件拷贝到镜像的/目录
ADD test.tar.gz /tmp #添加到根目录并解压 #并且ADD指令还有 解压缩的功能

打包一个程序和Dockerfile

1.准备一个flask代码文件
[root@master mydocker]# cat s17-flask.py #coding:utf8
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
return " hello,flask"
if __name__=="__main__":
app.run(host='0.0.0.0',port=8080) 2.准备构建dockerfile,用于生成镜像 FROM centos #指定一个基础镜像
COPY CentOS-Base.repo /etc/yum.repos.d/ #拷贝本地的yum仓库,到容器空间内
COPY epel.repo /etc/yum.repos.d/ #
RUN yum clean all
RUN yum install python-setuptools -y
RUN easy_install flask
COPY s17-flask.py /opt/
WORKDIR /opt
EXPOSE 8080 #暴露容器的8080端口,供给物理机去映射访问
CMD ["python","s17-flask.py"] #cmd代表执行命令 3.准备 CentOS-Base.repo epel.repo 4.确保 dockerfiel,flask代码,yum仓库文件,在同一层目录 5.构建镜像
docker build . 6.检查docker镜像文件,是否有自己创建的镜像 7.修改镜像的名字 docket tag 镜像名 新的镜像名 8.运行镜像,生成容器实例
docker run -p 8080:8080 -d 04b 9.检查docker端口映射状态
docker port 容器id 10.访问windows,找到容器内的应用

  

   

linux-----docker的更多相关文章

  1. Win10 & Linux Docker 安装使用

    Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...

  2. .NET Core 图片操作在 Linux/Docker 下的坑

    一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...

  3. Linux - docker基础

    目录 Linux - docker基础 docker的概念 docker安装流程 docker基本命令学习 docker 的 hello docker 运行一个ubuntu容器 Docker与Cent ...

  4. Asp.Net Core采用MailKit部署到Linux Docker连接邮件服务器报错

    前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api ...

  5. DELPHI开始支持LINUX DOCKER

    DELPHI开始支持LINUX DOCKER 本方翻译自Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级容器而不是物理机器或虚拟机已经变得越 ...

  6. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  7. Linux Docker的部署

    1.安装 $ yum -y install docker 2.启动docker服务 $ systemctl start docker 3.设置开启自启 $ systemctl enable docke ...

  8. .NetCore&Linux&Docker&Portainer踩坑历险记

    最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...

  9. linux ---docker篇

    Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...

  10. Linux Docker命令

    命令查看你当前的内核版本:uname -r yum 包更新到最新:yum update 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemap ...

随机推荐

  1. SpringCloud学习系列汇总

    Spring Cloud常用组件使用汇总 使用SpringBoot2.0.3整合SpringCloud 服务注册与发现Eureka 自定义Eureka集群负载均衡策略 如何使用高可用的Eureka F ...

  2. C#在window服务配置Log4Net.dll

    1.使用背景: C#window服务下添加一个日志记录程序集(Log4Net.dll) 2.添加和使用步骤如下: 一.下载并引入Log4Net.dll程序集到项目中 下载地址:http://loggi ...

  3. 微信小程序报错,不在以下 request 合法域名列表中(引起的探索)

       最近因为突然对小程序有兴趣,然后开始了自学之旅.     在学习的过程当中遇到了一个问题,控制台报错,提示:不在以下 request 合法域名列表中,如下图所示 然后我就开始了搜索之旅,相对觉得 ...

  4. springboot~使用docker构建gradle项目

    这是一篇关系到四个知识点的文章,分别是java,docker,springboot和gradle,我们希望在java环境下,使用springboot框架,通过gradle去构建项目,然后把项目部署和运 ...

  5. Python:os 模块常用方法简介

    返回当前工作目录 os.getcwd() 返回 path 的绝对路径 os.path.abspath(path) os.path.abspath('.') 相当于 os.getcwd() 分割目录和文 ...

  6. Windows10下安装Docker的步骤

    一.启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图: 点击确定后,启用完毕会提示重启系统,我们可以稍后再重启. 二.安装 ...

  7. 103 - kube-scheduler源码分析 - 调度算法-寻找predicates和priorities

    scheduler的主要逻辑是predicate和priority,前者回答哪些节点可以运行pod的问题,后者回答哪个节点更合适运行pod的问题.今天我们的任务是:从主函数出发,寻找predicate ...

  8. kubernetes系列09—Ingress控制器详解

    本文收录在容器技术学习系列文章总目录 1.认识Ingress 1.1 什么是Ingress? 通常情况下,service和pod仅可在集群内部网络中通过IP地址访问.所有到达边界路由器的流量或被丢弃或 ...

  9. Java基础系列-Enum深入解析

    原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755129.html 一.概述 枚举就是一个语法糖效果. 定义一个枚举,其实就是定义一个继承抽象类E ...

  10. Java并发——线程介绍

    前言: 互联网时代已经发展到了现在.从以前只考虑小流量到现在不得不去考虑高并发的问题.扯到了高并发的问题就要扯到线程的问题.你是否问过自己,你真正了解线程吗?还是你只知道一些其他博客里写的使用方法.下 ...