浅谈Docker 客户端和守护进程

Docker 守护进程

sudo docker daemon & 即可 启动docker 守护进程

sudo docker daemon –help 查看帮助

其中

--label  设置标签
        sudo docker info 可以查看到label选项

-H  指定docker守护进程的socket,可以是:
        tcp://host:post
        unix:///patch/to/socket
        fd://* or fd://socketfd

也可以设置DOCKER_HOST环境变量来设置

export DOCKER_HOST 

一般都是使用 sudo server docker start 启动docker守护进程

如果使用sudo server docker start 启动docker守护进程

docker 守护的进程配文件位置在

/etc/default/docker

其中 DOCKER_OPTS 可以填入 sudo docker daemon –help 中的选项

对应的docker客户端也可以指定 -H 连接docker守护进程的socket

例如:

docker -H tcp://127.0.0.1:2375 run -it ubuntu:14.04 /bin/bash

容器的基本操作

启动容器

sudo docker run ubuntu echo “hellow”

启动交互式容器

sudo docker run -i -t ubuntu /bin/bash
  1. -i –interactive=true
  2. -t –tty=true

查看容器

sudo docker ps [-a ]|[ -l]
  1. -a 列出所有的容器
  2. -l 列出最新创建的一个容器

CONTAINER ID

容器启动时建立的唯一ID

NAME

自动建的容器的名字

sudo docker inspect CONTAINER ID or NAME

检查容器

自定义容器名

sudo docker run --name=名字 -i -t ubuntu /bin/bash

重新启动停止的容器

sudo docker start [-i] NAME

删除停止容器

sudo docker rm NAME

守护式容器

启动守护式容器

交互式容器以 Ctrl+P Ctrl+Q 退出容器

或者

直接启动守护守护式容器

docker run -d CONTAINER ID or NAME 

进入容器

docker attach CONTAINER ID or NAME

查看容器日志

docker logs [-f] [-t] [--tail] CONTAINER ID or NAME 
  1. -f –follows=true|false 默认false 一直跟踪
  2. -t –timestamps=true|false 默认false 在返回的结果上加上时间
  3. –tail=”all” 返回结尾处多少数量的日志

查看容器内进程

docker top CONTAINER ID or NAME 

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

docker exec [-d] [-i] [-t] CONTAINER ID or NAME [COMMAND] [ARG ...]

停止守护式容器

docker stop CONTAINER ID or NAME
docker kill CONTAINER ID or NAME

设置容器的端口映射

docker run [-P] [-p]

-P –publish-all=true|false 默认false

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

为容器暴露的所有端口进行映射

-p –publish=[]

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

只指定要映射的容器的端口,宿主机的端口是随机的

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

同时指定宿主机端口和容器端口

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

指定映射容器的那些端口

参考自: http://www.jikexueyuan.com/course/841.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Docker守护进程的配置及日志

    安装Docker并启动,在Docker所在的服务器上,就一直有一个Docker守护进程dockerd在运行. 默认手工启动Docker守护进程,只需要执行如下命令: dockerd 停止上述进程,只需要CTRL+C键盘命令. 1. dockerd的配置文件 如果要使用非默认配置参数启动Docker守护进程,可以在启动Docker守护进程的时候,为dockerd命令设置启动选项,不过显然这需要先通知dockerd,然后再启动dockerd. 如果要在不停止dockerd的条件下改变dockerd的

  • Docker命令行与守护进程的交互方法

    为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. Docker并非单体应用,它由多个组件构成.这篇博客将介绍Docker守护进程(daemon)与Docker命令行(CLI).事实上,当我们在谈论安装或使用Docker时,所指的其实就是Docker守护进程与命令行. Docker架构图 解释一下上图中的元素: Docker守护进程(docker daemon)是运行在你的操作系统上的一个服务.目前,它只能运行在Linux上,因为它依赖于一些Linux内核特性(比

  • docker守护进程的配置和操作的方法

    查看docker守护进程的运行状态 语法: ps -ef | grep docker sudo status docker 实例: 启动,停止重启docker的守护进程(使用service命令管理) 语法: sudo service docker start sudo service docker stop sudo service docker restart 实例: docker守护进程的启动选项 语法: docker -d [OPTIONS] 运行相关: -D,--debug=false

  • 浅谈Docker 客户端和守护进程

    Docker 守护进程 sudo docker daemon & 即可 启动docker 守护进程 sudo docker daemon –help 查看帮助 其中 --label  设置标签         sudo docker info 可以查看到label选项 -H  指定docker守护进程的socket,可以是:         tcp://host:post         unix:///patch/to/socket         fd://* or fd://socket

  • 浅谈docker compose书写规则

    本文对集群部署相关的一概不做介绍 版本约束 Docker Engine >= 19.03 Docker Compose >=3.8 结构介绍 docker-compose.yaml 文件结构主要由 version # docker compose版本 networks # 网络,用于docker容器内部通讯 x-{name} # 模版命名规则 以x-开头 用于复用 volumes # 挂载卷 services # 服务模块,内部定义容器信息 其内部参数相当于docker run时的参数 模块介

  • 浅谈docker学习之docker数据卷(volume)

    1.什么是数据卷volume 为了了解什么是Docker Volume,首先我们需要明确Docker内的文件系统是如何工作的.Docker镜像被存储在一系列的只读层.当我们开启一个容器,Docker读取只读镜像并添加一个读写层在顶部.如果正在运行的容器修改了现有的文件,该文件将被拷贝出底层的只读层到最顶层的读写层.在读写层中的旧版本文件隐藏于该文件之下,但并没有被不破坏 - 它仍然存在于镜像以下.当Docker的容器被删除,然后重新启动镜像时,将开启一个没有任何更改的新的容器 - 这些更改会丢失

  • 浅谈docker --privileged=true参数作用

    大约在0.6版,privileged被引入docker. 使用该参数,container内的root拥有真正的root权限. 否则,container内的root只是外部的一个普通用户权限. privileged启动的容器,可以看到很多host上的设备,并且可以执行mount. 甚至允许你在docker容器中启动docker容器. $ docker help run ... --privileged=false Give extended privileges to this container

  • 浅谈Docker如何自定义host文件

    目录 一.命令 二.docker-compose.yml 三.dockerfile 四.直接修改 五.修改镜像 总结 1.问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候,需要指定内网的地址.但是有时候我们需要迁移环境,那么我们的后端代码就得跟着进行修改,有没有一种好的办法,不让我们修改代码吗? 答:可以肯定的说是有的,那就是在代码中指定的不是IP地址,而是域名.我们只需要配置域名和IP地址建立映射关系,所有的项目都无需更改代码就可以达到目的. 2.问:正式环境一般都是

  • 浅谈docker运行nginx为什么要使用daemon off

    很开心啊,遇到这个问题,就要讲讲docker容器的进程原理了,基本上了解过docker的人都清楚docker的几个隔离方式,那么进程同样是进行隔离. 问题 1.docker容器跑着为啥会挂掉? docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出. 2.docker run的时候把command最为容器内部命令,如果你使用nginx,那么nginx程序将后台运行,这个时候ng

  • 浅谈Docker安全机制内核安全与容器之间的网络安全 原创

    内核安全 内核为容器提供两种技术 cgorups和namespaces,分别对容器进行资源限制和资源隔离,使容器感觉像是在用一台独立主机环境. ·cgroups资源限制 容器本质上是进程,cgroups的存在就是为了限制宿主机上不同容器的资源的使用量,避免单个容器耗尽宿主机资源而导致其他容器异常. ·namespaces资源隔离 为了使容器处在独立的环境中,docker使用namespaces技术来隔离容器,使容器与容器之间,容器与宿主机之间相互隔离. docker目前仅对uts.IPC.pid

  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    在介绍VOLUME指令之前,我们来看下如下场景需求: 1)容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上.一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像).能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在. 2)当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上. 这样的话,我在主机上修改文件(如html,js等)后,需要再同步

  • 浅谈Linux内核创建新进程的全过程

    进程描述 进程描述符(task_struct) 用来描述进程的数据结构,可以理解为进程的属性.比如进程的状态.进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct 进程控制块(PCB) 是操作系统核心中一种数据结构,主要表示进程状态. 进程状态 fork() fork()在父.子进程各返回一次.在父进程中返回子进程的 pid,在子进程中返回0. fork一个子进程的代码 #include <stdio.h> #include <stdli

  • 浅谈Docker 容器数据卷挂载小结

    为了更直观了解数据卷挂载的操作,做个实验一一验证数据卷挂载的各种情况. 情况一.本地不存在文件挂载到容器存在文件 首先是当本地不存在该文件,而容器内存在该文件的情况,尝试把不存在的文件挂载到存在该文件的容器中.以一个 Alpine 镜像为例,这里把一个修改后的 Alpine 镜像打了新标签,叫做 volume_test: # 本地目录不存在 test 文件. $ docker run --name=test -v ~/test.txt:/etc/hosts -d volume_test 0cba

随机推荐