Docker容器相关技术简介

Namespces命名空间功能:

编程语言

封装--->代码隔离

操作系统

系统资源的隔离

进程、网络、问卷系统

五种命名空间: 

 

  • PID(Process ID)进程隔离
  • NET(Network)管理网络接口
  • IPC(InterProcess Communicatio) 管理跨进程通信的访问
  • MNT(Mount) 管理挂载点
  • UTS(Unix Timesharing System)隔离内核和版本标识

 

Control groups控制组(用来分配资源)功能

 

  • 资源限制
  • 优先级设定
  • 资源计量(计费系统尤其重要)
  • 资源控制 

 

Docker容器的能力:

 

  • 文件系统隔离性:每个容器都有自己的root文件系统
  • 进程隔离性:每个容器都运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址是分开的
  • 资源隔离与分组:使用Cgroups将CPU和内存之类的资源独立分配给每个Docker容器 
Docker 的运行环境

 

  • LINUX容器技术
  • 操作系统级别的虚拟化
  • 依赖于Linux内核的Namespace和Cgroups 

 

Docker在ubuntu下安装
安装前检查:
1、内核版本使用:

uname -a 

2、检查Device Mapper(存储驱动)

 ls -l /sys/class/misc/device-mapper

 

 安装ubuntu维护的版本

1.sudo apt-get install docker.io 

2. source /etc/bash_completion.d/docker.io(更新)

1、检查apt的https支持 查看/usr/lib/apt/methods/https文件是否存在,如果不存在,运行安装命令

apt-get update

apt-get install -y apt-transport-https

2、添加Docker的APT仓库

echo deb https://get.docker.com/ubuntu docker main > /etc/apt/

sources.list.d/docker.list 

 3、添加仓库的key

apt-key adv --keyserver hkp://keysserver.ubuntu.com:80 --recv-keys

4、安装

apt-get update

apt-get install -y lxc-docker 

 简易安装:

1、sudo apt-get install -y curl

2、curl -sSL https://get.docker.com/ubuntu/ |sudo sh 

 使用非root用户:

1、sudo groupadd docker(添加docker用户组)

2、sudo gpasswd -a ${USER} docker (${USER}当前用户,将当前用户添加到用户组中)

3、sudo service docker restart 

docker 在Windows下的安装

 Boot2Docker for windows包含:

1、Boot2Docker Linux ISO(虚拟机镜像)

2、Virtualbox(虚拟机服务)

3、MSYS-git()

4、管理工具 

下载安装Boot2Docker:

1、访问Github上的Boot2Docker

https://github.com/boot2docker/boot2docker 

2、下载docker-install.exe

3、安装docker-install.ex 

 

微软对Docker的支持

windows Azure中的Docker镜像以及Docker仓库

windows Server中的下一个版本

Docker windows CLI 

启动容器:docker run IMAGE [COMMAND] []ARG..

eg: docker run ubuntu echo 'hello world'

  run 在新容器中执行命令

启动交互式容器:

docker run -i -t IMAGE /bin/bash

  -i --interactiv=true|false 默认是false

  -t --tty=true|false 默认是false

查看容器:

  docker ps -a -l

  docker inspect

自定义容器名:

  docker run --name=自定义名 -i -t IMAGE/bin/bash

重新启动停止的容器

  docker start  -i 容器名

删除停止的容器:

  docker rm 容器名

守护式容器:

能够长期运行   没有交互式会话   时候运行应用程序和服务

以守护形式运行容器:

  先docker run -i -t IMAGE /bin/bash

       后 Ctrl+P     Ctrl+Q  让容器在后台运行

附加到运行中的容器:

  docker attach 容器名

启动守护式容器

  docker run -d 镜像名

查看容器日志

  docker logs -f -t --tail 容器名

  -f  --follows=true|false 默认为false

  -t --timestamps=true|false 默认为false

  --tail='all'

查看容器内进程:

  docker top 容器名

在运行中的容器内启动新进程:

  docker exec -d -i -t 容器名

停止守护式容器:

  docker stop 容器名

  docker kill 容器名

 容器的端口映射

  run -P或-p

  -P ,--publish-all=true|false默认为false  可以映射所有的端口

  docker run -P -i -t ubuntu /bin/bash

  -p ,--publish=[]

  containerPort

    docker run -p 80 -i -t ubuntu /bin/bash

  hostPort:containerPort

    docker run -p 8080:80 -i -t ubuntu /bin/bash

  ip:containerPort

    docker run -p 0.0.0.0:80 -i -t  ubuntu /bin/bash

  ip:hostPort:containerPort

    docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

Nginx部署流程

  •   创建映射80端口的交互式容器
  •   安装Nginx (apt -get install -y nginx)
  •   安装文本编辑器vim (apt -get install -y -vim)
  •   创建静态页面(mkdir -p /var/www/html 然后切换到该目录 ,vim index.html  )
  •   修改Nginx配置文件(whereis nginx)
  •   运行Nginx
  •   验证网站访问

dock info 可以查看dock所在的目录信息

Docker 镜像-----列出镜像

docker images [options] [repository(仓库)]

  -a ,--all=false

  -f ,filter=[]

  --no-trunc=false(不适用截断方式线上)

  -q ,--quiet=false

查看一个镜像的完整信息

docker inspect[options] container|image[container|image]

  -f ,--format=''

删除镜像

  docker rmi [options] image[image....]

    -f ,--force=false 

    --no-prune=false (do not delete untagged parents:未打标签父镜像)

查找镜像

docker hub(需要先注册一个账户)

  https://registry.hub.docker.com(提供官方软件仓库)

docker search [options] term

  --automated  =false   only show automated builds

  --no-trunc=false  don't truncate output

  -s,--stars=0   only displays with at least x stars

推送镜像(推送到docker hub上)

docker push [options] name

拉取镜像

docker pull [options] name[:tag]

  -a ,--all-tags=false   download all tagged images in the repository

由于下载docker 镜像过程比较慢

使用--registry-mirror选项

  1.修改:/etc/default/docker

  2.添加:DOCKER-OPTS='--registry -mirror=http://MIRROR-ADDR'

获得本地镜像链接: https://www.daocloud.io  注册账号,选择加速器,配置镜像链接

构建本地镜像

  docker commit :通过容器构建镜像

  docker commit [options] container [repository[:tag]]

    -a ,--author=''Author

    -m,--message=‘’ commit message

    -p ,--pause=true pause container during commit

  docker build: 通过dockerfile文件构建

    创建dockerfile文件

  docker bulid [options] paht |url

    --force-rm=false

    --no-cache=false

    --pull=false

    -q , --quiet=false

    -t, --tag=''

 使用service命令管理docker

  sudo status docker :查看docker的状态

  sudo service docker start

  sudo service docker stop

  sudo service docker restart

posted @ 2019-03-06 16:43  yanrufei  阅读(148)  评论(0)    收藏  举报