docker教程

与容器交互的方式

docker -i -t image /bin/bash

-i 始终打开标准的输入输出

-t 提供一个ttl的伪终端

查看容器

docker ps -a -i

-a  查看所有

-i 查看最新的容器,进程   comment 命令 creates 创建

不给ps指定参数,返回的是正在运行的容器

查看容器的详细信息

docker inspeck  容器id或者容器的names

给容器起名字:docker run --name=XXXX 。。。。。在启动容器的时候给它命名,就好了

启动一个已经停止的容器 docker start  -i XXX  -i表示以交互的方式启动

当然了也可以删除一个已经停止的容器 docker rm XXX      这个只能删除已经停止的容器

当然了也可以用docker stop命令的停止容器

守护式容器

命令结束后不会停止,上面的是交互式容器,会话一结束,就停止了】

方式一:运行docker后进入交互界面后的退出方式为ctrl+q或者ctrl+p退出,线程不会断  用docker attach id或者名字进入退出的容器      attach:依附,系上

方式二:docker run -d XXXX也是一种后台运行的方式

查看运行状态用 docker  logs -ft --tail n 名字或者id        -f实时,-t显示时间 --tail 10显示最新的10条,tail 0显示最新的

当然了也可以查看容器的进程:docker top 容器名

当然了虽说一个容器一个单元,但有时候一个容器中多个进程还是必须要的

exec:执行实行

docker exec -d -i -t 容器名 XXXX类似run

停止运行中的容器

docker stop 容器名:发送一个信号,等待停止  停止后返回容器的名字

docker kill 容器名 直接杀死

 

在容器中部署静态网站

-P大写的p会映射容器的所有端口,小写的p能指定哪些端口

删除容器

查看镜像 docker images                               latest

删除容器 docker rm

删除镜像 docker rmi     -f强制删除    --no-prune保留被打标签的父镜像

获取推送镜像

docker search  XXXXX

-automated = false 自动化部署镜像

--no-trunc=false不断开

-s表示星级  一次最多25个

service docker restart /stystemctl docker 重新启动docker 的守护进程,就是重启docker

推送镜像:docker push XXX     dockerhub上

 

docker的C/S模式:

    remate api可以用来跟docker的守护进程通信

docker教程_第1张图片

 

docker的客户端和docker的连接的方式是sock

分别提供了三种连接方式:unix:///var/run/docker.socket     默认

tcp://host:port

fd://socketfd

 

 

remote api的使用

nc -u /var/run/docker.sock       nc是liunx命令 -U表示用的是socket

GET /info  HTTP/1.1

 

查看docker的运行状况

status docker 或者  ps -ef |grep docker

停止service docker stop

service docker start启动docker

status docker  查看docker守护进程的状态

 

如果docker有多个配置项可以通过docker -d ddockerocker的配置项选择配置

 

docker的远程访问

第二台安装docker服务器

修改docker的守护进程启动选项,区别服务器

保证client api与server api版本一致

 

DOCKER_OPTS ="-H tcp://0.0.0.0:2375";在启动配置文件中配置,想远程访问dockerserver需要配置为tcp协议

docker的端口一般为2375

在docker客户端使用DOCKER_HOST  export DOCKER_HOST=“tcp://xxxxx:2375”就可以像本机一样了

可以用export命令添加例:export DOCKER_HOST=“http://xxxxx:2375

如果把export DOCKER_HOST置空会自动的默认访问本机

docker 的-h指令是可以设置多个值的,一般加一个本地的

 

dockerfile构建镜像;

dockerfile的指令有两种  #Comment 注释

以大写的命令开头,后面跟着命令参数

from image 必须是开始的第一条非注释的  例:

#First Dockerfile

FROM ubuntu:14.04  //表示本地的镜像

MALNTALNER dormancypress “[email protected]”  //malntalner:指定镜像的作者信息,包含镜像的所有者和联系信息

RUN apt-get update  //当前镜像中的命令  run命令都会在当前的镜像上创建一个新的镜像执行命令  可以用&&合并为一条哦

RUN apt-get install -y nginx        

EXPOSE 80   //指定运行该镜像的容器的使用端口  但是默认不会打开,需要在run -p的方式打开

CMD:容器运行时的执行命令,但是run命令如果写明了则会覆盖这个  ENTRYPOINT 与CMD非常相似,但是他不会被覆盖

docker用docker build -t="镜像名 " .//表示当前位置

 

AND与COPY非常相似,都是把dockerfile使用的目录复制到镜像中。单纯文件用copy,解压用add(自带解压功能)

本地默认html替换成本地html

VALUME:基于镜像创建的容器添加卷  提供共享数据并持久化的功能

WORKDIR  作用是在镜像创建容器时在容器内部创建工作目录用绝对路径,相对路径会一直传递下去

ENV用来设置环境变量

USER指明镜像以什么样的用户去运行  USER nginx 表明运行容器的用户以nginx的身份来运行  默认root用户

ONBUILD:指令为容器添加触发器  当一个镜像被当做其他镜像作为基础镜像时会被执行    当被构建时会插入触发器指令

dockerfile的构建过程

从基础镜像运行一个容器

执行一条指令,对容器做修改

执行类似docker commit的操作,提交一个新的镜像层

在基于刚提交的镜像运行一个新容器

执行dockerfile中的下一条指令,直至执行完毕

虽说会删除容器但是不会删除镜像,可以通过docker run it  对应你想找的id  运行相对应的指令

导致可以通过中间层镜像进行调试,查找错误。

构建缓存:不一定每次提交浪费时间,会将前面的镜像看成缓存让构建非常快

想跳过缓存,用docker build --no-cache或者在dockerfile文件中加入环境变量ENV REFRESH_DATA date

docker 提供了docker history imagename 来查看构建过程。

你可能感兴趣的:(docker入门,技术,详细文档,问题,教程)