加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-----docker

发布时间:2020-12-14 01:50:41 所属栏目:Linux 来源:网络整理
导读:docker简介 Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。 docker的三大概念 镜像:我们可以理解为系

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=“[email?protected]"



#对于复杂的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代码文件
[[email?protected] 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,找到容器内的应用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读