docker1-docker以及常用命令,Dockerfile

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/82178772

docker是一个装应用的容器(类似于虚拟机高于虚拟机)

软件容器化

解决了:

  1. 运行环境不一致的问题
  2. 每个容器独立不影响(LXC容器虚拟化-linux下)
  3. 增加容器简便
  4. 不用记录存储位置
  5. 启动速度慢

时势造英雄:

统一云计算/敏捷开发(PaaS平台即服务,平台提供了存储,数据库,网络,负载均衡,自动扩展的功能)

将软件或web应用build构建出镜像 ship运输 run运行中的镜像叫容器

宿主机host:

镜像image:(集装箱)存储格式:联合文件系统,分层,只有最顶层是可写的

容器container:一个进程,想象为虚拟机(OOP思想:镜像是类,容器是对象,只有在镜像run后才能叫容器)

仓库registry:国外仓库太慢,国内网易蜂巢c.163.com  Registry是注册的意思

守护程序daemon:

download

mac下载官网下载  dmg文件

linux下安装

sudo wget -qO- https://get.docker.com |sh

把用户放docker组 sudo usermod -aG docker zhaojianyu

问题解决 :https://blog.csdn.net/zxzxzxzx2121/article/details/61914870

http://www.runoob.com/docker/docker-hello-world.html


Registry操作

国内仓库:daocloud/时速云/aliyun

镜像redis的检索

docker search redis

镜像的下载(从仓库)

docker pull [options] name[:tag]
实例:docker pull redis

构建自己的镜像之后提交到远程仓库hub.docker.com

docker login

docker push 镜像名

image镜像操作

查看本地镜像列表

docker images

删除镜像

docker rmi 镜像id

删除所有镜像

docker rmi ${docker images -q}

容器操作

运行容器

docker run -p 8080:80 --name 容器名 -d 镜像名 // 【返回唯一id标识】 -d后台运行

docker run -d -p 8080:80 hub.c.163.com/library/nginx

在运行的容器上拷贝文件(host宿主上与container容器之间)

docker cp index.html 容器id://usr/share/nginx/html

保存修改的镜像(产生新的镜像)

docker commit -m '提交注释' 容器id nginx-name

查看正在运行的容器/查看运行的和停止的容器

docker ps
-a :显示所有的容器,包括未运行的。
-q :静默模式,只显示容器编号。
-n 5 :列出最近创建的5个容器。

启动容器///停止容器

docker stop 容器名/或容器id
docker start 容器名/或容器id

重启容器

docker restart

在容器里运行命令

docker exec -it 容器id或容器名 /bin/bash

docker file创建镜像(常用,自创镜像)

第一个docker file(from 基础镜像  MAINTAINER 告诉其他人作者   CMD 执行命令)

文件名:Dockerfile     /约定成俗/

alpine  专门为docker做的极小的linux环境

FROM alpine:latest
MAINTAINER zhaojianyu
CMD echo 'hello lcy'

构建 -t标签     .(这里有个点)路径名   

docker build -t hello_docker .

执行过程

Dockerfile常用:

FROM  基础镜像
RUN 执行命令
ADD 添加文件
COPY 拷贝文件
CMD 执行命令
EXPOSE 暴露端口

USER

1 格式

USER <user>[:<group>] or

USER <UID>[:<GID>]

2 作用

指定运行时的用户名或UID,后续的RUN也会使用指定的用户。

当服务不需要管理权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户

3 说明

要临时获取管理权限可以使用gosu,而不推荐sudo。

WORKDIR

1 格式

WORKDIR /path/to/workdir

2 作用

为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。

可以使用多个WORKDIR指令,后续命令如果参数时相对路径,则会基于之前命令指定的路径。例如

WORKDIR /a

WORKDIR b

WORKDIR c

RUN pwd

则最终路径为/a/b/c


docker网络类型

 

1bridge(默认的模式)独立的network namespace

2host     -p   -P开放所有端口并随机

3none

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/82178772