Docker -- 安全/部分命令/Daemon

Docker -- 终极指南
 1.安装过程 -- Docker -- docker pull 镜像 -- docker images 列出镜像
   -- docker run --rm -ti ubuntu /bin/bash 创建容器  (rm:进程退出即删除容器,用来测试)
   -- docker ps 查看容器 -- docker exec -ti name /bin/bash 进入容器  -- exit 退出
  
 2.Linux命名空间 UTS (UNIX Time-sharing System)
  *Docker核心解决的问题是利用LXC来实现类似VM的功能,
   从而利用更加节省的硬件资源提供给用户更多的计算资源。
   而LXC(Linux Container)所实现的隔离性主要是来自内核的命名空间,
   其中pid、net、ipc、mnt、uts 等命名空间将容器的进程、网络、消息、文件系统和hostname 隔离开
 
Docker -- 安全
  1.Docker run 命令执行后,Docker的具体实现
   * Docker run 命令初始化
   * Docker 运行 lxc -start 来执行run 命令
   * lxc -start 在容器中创建了一组namespace 和 control groups 。
    ①namespace: 隔离容器,每个容器都有独立的网络栈,因此容器间访问sockets需要指定容器的公网IP端口。
     ②cgroups:负责资源核算和限制, 提供CPU,内存,I/O和网络相关的指标,避免某种DOS攻击,支持多租户平台。
    
  2.Docker Daemon 以root权限执行时注意点
   * Docker允许与访问容器目录共享而不限制其访问权限的时候,Docker Daemon的控制权应该只给授权用户,
   * REST API支持unix sockets, 从而防止了cross-site-scripting 攻击
   * REST API的HTTP接口应该在可信网络或者VPN下使用。
   * 在服务器上单独运行Docker时,需要与其他服务隔离。
    ①容器以非特权用户运行。
    ②Apparmor, SELinux ,GRSEC 解决方案,可用于额外的安全层。
    ③可以使用其他容器系统的安全功能。
    
Docker 命令
 daemon:管理容器的后台进程,-d 参数运行后台进程。
 build :使用Dockerfile创建镜像  docker build -t  [options] path | url   [options:  --rm=true :构建后删除中间容器, --no-cache=false :不使用缓存]
 attach:与运行容器交互, 退出:ctrl+c/ ctrl-\(退出并显示堆栈信息) docker attach container
 diff  :列出文件中变化的文件和目录:docker diff container .
 events:打印指定时间内的容器的实时系统事件。
 import:导入远程文件或本地文件和目录。(远程): docker import http://example.com/example.tar     (本地使用-参数)sudo tar -c image.tar | docker import -imageapp
 export:将容器的系统文件打包成tar:  docker export containid > image.tar
 cp    :从容器中复制文件到指定目录。 docker cp containerID:path hostpath.
 login :登录registry服务器。  docker login [options] [server]
 inspect:收集容器和镜像的底层信息。 docker inspect container/image *容器实例的IP地址,*端口绑定列表, *特定端口映射的搜索, *收集配置的详细信息。
 kill  :停止容器的主进程 docker kill [options] container .
 rmi   :移除一个或多个image镜像 docker rmi image
 wait  :阻塞对容器的其他方法调用,直到容器停止后退出阻塞。docker wait containerID
 load  :从tar文件中载入镜像或仓库到STDIN. docker load -i load.tar
 save  :保存镜像为tar文件并发送STDOUT。 docker save imageid > appbox.tar。

时间: 2024-10-12 04:42:59

Docker -- 安全/部分命令/Daemon的相关文章

Docker的学习--命令使用详解

使用命令查看一下docker都有那些命令: docker -h 你将得到如下结果: A self-sufficient runtime for linux containers. Options: --api-cors-header= Set CORS headers in the remote API -b, --bridge= Attach containers to a network bridge --bip= Specify network bridge IP -D, --debug=

Docker 选项和命令

选项 -D=true|false 使用 debug 模式.默认为 false. -H, --host=[unix:///var/run/docker.sock]: tcp://[host:port]来绑定或者 unix://[/path/to/socket] 来使用. 在 daemon 模式下绑定的 socket,通过一个或多个 tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd 来指定. --api-enable-c

docker中的命令参数(小白常用)

1 docker run run是最常用的命令,他是docker creat和docker start命令的组合,创建容器并启动它.run的参数比较难理解的是-i 和-t 以及-d,分别说说这三个. -i -i 参数是keep STDIN open even if not attached,意思就是会把交互界面保留着.但是要看容器的PID1,或者说看容器的CMD是什么,有些CMD程序并不会理会任何输入,也就是说它就没有等着你输入命令,这时候你输入什么都是无效的.并且,因为linux对pid1的特

docker: Error response from daemon: OCI runtime create failed 解决办法

错误原因 在新服务器上安装好docker后,发现无法运行,经常一顿搜索后,发现是docker安装的版本过高,最新版本docker-18.06 的核心好像没有经过充分的测试就发布了. 导致一运行,就提示: docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:301: runn

云计算 docker 容器使用命令

docker 使用命令: docker version 查看docker版本号 vi /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] } 配置docker镜像加速 docker run -d -p 80:80 nginx 启动一个容器 run(创建并启动一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字docker镜像管理命令

Docker基本控制命令(二)

Docker基本控制命令(二) 资源控制 CPU使用率控制 限制该镜像本次建立的容器最大只能占总资源的10% docker run --cpu-quota 10000 centos 按比例分配 创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和66. 7% docker run -itd --name c1 --cpu-shares 512 centos(镜像名)docker run -itd --name c2 --cpu-shares 1

docker 容器常用命令

1 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并启动 所需要的命令主要为 docker run 例如,下面的命令输出一个 "Hello World",之后终止容器. [[email protected] ~]# docker run docker.io/centos:v1 /bin/echo "hello wor

CentOS 7安装Docker及常用命令

CentOS 7安装Docker及常用命令   yum install docker #安装docker systemctl start docker.service #启动docker systemctl enable docker.service #docker开机启动 docker -v #查看docker版本 docker info #查看docker具体信息 docker pull centos #下载centos image docker images #显示已有image dock

如何使用Docker实现PHP命令行程序的CI/CD?

本文标签: Docker PHP命令行程序的CI/CD Codeship 内容要点: - 使用Jet设置环境并在本地运行测试 - 配置CodeshipPro每次新代码提交时,自动运行测试 - 上一步的测试通过后,自动将更新部署到服务器 持续集成 应用程序和测试套件已经在本地运行,下一步要做的是建立一些持续集成系统.虽然可以设置服务器来执行此操作,但这个过程工作量略大,因此推荐一个像CodeshipPro的服务. 使用Jet进行本地测试 代码提交到Codeship测试前,建议先安装其本地版本的持续