Docker使用 - 容器

查看容器

命令:docker  ps  [options]

options有:

-a:查看所有容器,包含不在运行中的(不带-a参数,是只显示运行中的容器)

-q:只显示容器ID

-s:多加一列来显示总文件大小

-l:显示最近创建的容器(docker  ps  -l)

-n:显示最近创建的n个容器(docker  ps  -n  3, 显示最近创建的3个容器)

--filter:根据条件过滤(不常用,容器数量没大到那种程度需要用过滤器才能找到。)

启动容器

方式一:从一个镜像中创建一个容器的同时并启动

docker  run  [options]  镜像名或镜像ID  [command] [agrs]

options常有:

  • -d:让docker在后台运行而不是直接把执行命令的结果输出在当前宿主机器下。
  • -t:让docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上(配合-i使用)
  • -i:让容器的标准输入保持打开(配合-t使用)
  • --name:为容器命名
  • --restart:是否跟随宿主机开机启动(默认为“no”,可以有“always”)
  • --privilleged:是否让容器拥有root权限(可接 false 或者 true)
  • -v:创建数据卷( -v  本机目录1:容器目录1  -v  本机容器2:容器目录2)
  • -p:绑定端口,将本机端口映射到容器端口,-p  本机端口:容器端口,因为容器内监听的端口,本机并不知道,所以从外界来访问本机的那个端口是访问不到的,所以要做映射

数据卷

数据卷是一种技术,而不是某一个东西。

简单理解就是,将本机的某一个目录映射到某一个或者多个容器的某目录。这样在本机修改代码,就可以直接用容器跑代码

什么是数据卷

数据卷 是一个可供一个或者多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:

  1. 数据卷 可以在容器直接共享和重用
  2. 对 数据卷 的修改会立马生效
  3. 对 数据卷 的更新,不会影响镜像
  4. 数据卷 会默认一直存在,即使容器被删除

注意:数据卷 的使用,类似linux下对目录或者文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂着的 数据卷。

数据卷的用法

用镜像来创建一个容器的同时,指定“-v”参数来指定目录映射

准备:授权本地磁盘

命令:docker  run  -v  本地目录:容器目录  镜像名称或镜像ID

如果要同时挂载多个目录,可以执行多个 -v 即可,如:

docker  run  -v  本地目录1:容器目录1  -v  本地目录2:容器目录2 镜像名称或镜像ID

方式二:启动一个已经存在的容器

命令:docker  start  容器ID或容器名

更新容器

一个容器已经通过镜像创建成功了,但是当初创建的时候,由于考虑不周,忘了一些参数(比如开机启动),这时候可以通过 update 命令来更新容器。

命令:docker  update  [options]  容器名或容器ID

options有:

--blkio-weight(uint16): Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--cpu-period(int): Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota(int): Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period(int): Limit the CPU real-time period in microseconds
--cpu-rt-runtime(int): Limit the CPU real-time runtime in microseconds
 --cpu-shares(int): CPU shares (relative weight)
--cpus(decimal): Number of CPUs
--cpuset-cpus(string): CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems(string): MEMs in which to allow execution (0-3, 0,1)
--kernel-memory(bytes): Kernel memory limit
--memory bytes Memory limit
--memory-reservation(bytes): Memory soft limit
--memory-swap(bytes): Swap limit equal to memory plus swap: ‘-1‘ to enable unlimited swap
--restart(string): Restart policy to apply when a container exits

停止容器

命令:docker  stop  [options] 容器名或者容器ID

options有:

  -t:杀死容器进程前,给予容器用来停止的时间(默认是10秒)

重启容器

命令:docker  restart  [options]  容器名或容器ID

options有:

  -t:杀死容器进程前,给予容器用来停止的时间(默认是10秒)

即使容器是关闭状态,也可以重启,这点不像supervisor,supervisor的进程是关闭状态的话,则无法restart,只能start

删除容器

命令:docker  rm  [options]  容器名或容器ID

options有:

  -f:强制删除容器(默认情况下,只有是停止状态的容器才可以删除,但是带上-f后,可以直接删除在运行中的容器)

  -l:移除容器间的网络链接,而非容器本身(不懂,好像也用的少)

  -v:删除与容器关联的卷(这个还是可以有的)

批量删除容器

命令:docker  rm  -f  $(docker  ps  -a  -q)
不是什么新的知识点

在容器外执行容器里的命令

命令:docker  exec  [options]  容器名或容器ID  [command]

一般是:docker  exec  -it  容器名或容器ID  /bin/bash ,用于进入容器,是否真的能在外面做到其他的操作,暂未可知,我是验证了:docker  exec  容器名  echo "hello world">test.txt ,未成功

查看容器日志信息

命令:docker  logs  容器名或容器ID

主机和容器之间的内容拷贝(不建议,容器只做运算,最好不要往里面拷文件,可以做成数据卷映射)

主机拷贝到容器

命令:docker  cp  主机文件  容器ID或容器名:容器目录

有点类似本机与远程服务器之间的内容拷贝:scp 本机文件  远程服务器:目录

容器拷贝到主机

命令:docker  cp  容器ID或容器名:目录/文件  本机目录

原文地址:https://www.cnblogs.com/hf8051/p/11445316.html

时间: 2024-10-31 16:53:02

Docker使用 - 容器的相关文章

Docker的容器

容器是一个打包了应用和服务的环境,是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成. 容器的管理操作 容器常见的命令:查看.创建.启动.终止和删除 创建容器 docker create docker run 二者的区别在于docker create创建的容器处于停止状态,docker run 创建的容器处于启动状态 用docker create创建一个停止状态的容器 [[email protected] ~]# docker create centos:6.7 Unable

理解Docker单机容器网络

在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样. Docker针对端口映射前后有两种方案,一种是1.7版本之前docker-proxy+iptables DNAT 的方式:另一种则是1.7版本(及之后)提供的完全由iptables DNAT实现的端口映射.不过在目前do

docker迁移容器

Docker中容器的备份.恢复和迁移1. 备份容器首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表.要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命令 # docker ps 在此之后,我们要选择我们想要备份的容器,然后去创建该容器的快照.我们可以使用 docker commit 命令来创建快照. # docker commit -p 30b8f18f20b4 container-backup 该命令会生成一个

docker进入容器的方式

通过docker创建守护运行(在使用-d参数时)的容器时,容器启动后会进入后台.用户无法看到容器中的信息.某些时候如果需要进入容器进行操作,有多种方法,包括使用docker attach命令.docker exec命令,以及nsenter工具等. attach命令 docker attach 容器名称/ID 在使用attach命令有时候并不方便.当多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示.当某个窗口因命令阻塞时,其他窗口也无法执行操作了. exec命令 docker ex

FW Docker为容器分配指定物理网段的静态IP

官方有关于网桥和IP配置的文档地址:https://docs.docker.com/articles/networking/ 1.宿主机(系统采用ubuntu-14.04.1-server-amd64)的网络采用桥接模式(默认是DHCP模式,还有一种模式就是静态IP),网桥的网段与物理网段相同.目前的物理网段为192.168.5.1/24,网关是192.168.1.1,物理网卡设备为eth0编辑配置文件/etc/network/interfaces,自定义网桥br0 [email protect

Docker基础-容器操作

1.创建容器 1.新建容器 可以使用docker create命令新建一个容器. [[email protected] ~]# docker create -it ubuntu:latest ffc9099be315f1b94876410c7d74dcd20e311e735e638080dd477534c063a6d6 [[email protected]-node1 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS

docker --Docker微容器Alpine Linux

Alpine Linux的官网: http://www.alpinelinux.org/    #官方 https://pkgs.alpinelinux.org/packages  #官方提供的安装包查询 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpine Linux采用了 musl libc 和 busybox以减小系统的体积和运行时资源消耗. 在保持瘦身

docker mysql 容器安装笔记

Basic Steps for MySQL Server Deployment with Docker 1 查找适合的mysql镜像,选择合适的版本 docker search -f stars=3 -f is-official=true mysql--查找tag为mysql,stars大于3官方镜像 2 下载 docker pull mysql:5.7 3 运行 (1)docker run -d --name mysql01 mysql:5.7 说明 此处通过查看日志(docker logs

docker启动容器报"iptables No chain/target/match"

Centos 7 docker 启动grafana容器报"iptables No chain/target/match by that name" docker run -d -p 3000:3000  grafana/grafana:5.1.0   Error response from daemon: Cannot start container 565c06efde6cd4411e2596ef3d726817c58dd777bc5fd13762e0c34d86076b9e: ip

005 docker的容器操作

一 . 概述 在前面的章节之中,我们可以从docker hub之中获取软件的镜像了,现在我们的主要任务就是 从镜像之中开启容器了. 总的来说,容器的启动要比docker 的敬相爱难过操作要麻烦一些,但是总体还是比较简单的. 二 . docker的容器操作 为了演示整个docker的容器操作,我们首先先下载一个tomcat算了,比较小,然后我们测试起来也比较方便. 细心的人已经看到了,我们下载一个tomcat竟然有120M,怎么比我们tomcat软件包大那么多呢? 其实,tomcat依赖了jdk,