Docker入门二:容器管理

Docker入门二:容器管理

LinuxDocker

time: 2019-12-3

容器管理

docker常用命令

注: 命令中的CONTAINER,可以是conainer_id,也可以是container name

docker system info # 查看docker系统信息
docker container ls -a 查看当前已经创建的container

docker container ls:

-a 显示所有容器

-q 仅显示ID

-s 显示container的文件大小

快速启动容器

docker container run 可以快速创建并运行一个容器.

run 相当于pull + create + start等多步操作.

docker container run [OPTIONS] IMAGE [COMMAND [ARGS...]]

OPTIONS:

  • -i, --interactive
  • t,-tty,为终端
  • --rm在容器退出后自动移除
  • -p 将容器的端口映射到主机
  • -v指定数据卷

    一般会直接用-it 就可以在创建container直接访问终端.

常用的小型IMAGE busybox

docker container run busybox echo "hello world"

创建容器常用命令:

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

进入容器之后:

  • exit可以终止容器
  • Ctrl+p + Ctrl+q可以切换到后台运行
  • docker container attach conatiner_id/name可以从后台重新切到终端

这里如果额外加 -d可以指定container直接后台运行.

创建容器

docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]

例子:

docker container create     --name container_01     --hostname container_01     --mac-address 00:01:02:03:04:05     --ulimit nproc=1024:2048     -it ubuntu /bin/bash

ulimit可以设置进程最大数量.

在创建完毕之后,container状态为Created

启动容器

docker container start CONTAINER

停止/重启容器

docker container stop/restart CONTAINER

stop状态为Exited

start状态为Up

暂停和恢复

  • 暂停:
docker container pause CONTAINER

此时状态为Paused

  • 恢复:
docker container unpause CONTAINER

连接运行的容器

docker container attach CONTAINER

其他容器操作

查看容器元信息

docker container inspect CONTAINER

可以显示该容器详细的系统信息,json格式

容器日志管理

docker container logs [OPTIONS] CONTAINER

[OPTIONS]:

  • -t --timestamps 显示时间戳
  • -f实时输出,类似于tail -f

    例子:

# dulei @ dulei-PC in ~ [0:09:06]
$ docker container run \
>       --name container_02 \
>       -i -t -d \
>       ubuntu /bin/bash -c "while true; do echo hello world; sleep 2; done"
Unable to find image ‘ubuntu:latest‘ locally
latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:latest
71d966a66fb35d395c30a30cb49f3b38cec175e04511d92d1de3c4e3895180ca

# dulei @ dulei-PC in ~ [10:53:48]
$ docker container logs -tf container_02
2019-12-04T02:53:48.014806012Z hello world
2019-12-04T02:53:50.016944143Z hello world
2019-12-04T02:53:52.017360512Z hello world

容器进程

docker container top CONTAINER

可以用来快速查看容器当前执行的进程:

$ docker container top container_02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2611                32110               0                   11:18               pts/0               00:00:00            sleep 2
root                32110               32085               0                   10:53               pts/0               00:00:00            /bin/bash -c while true; do echo hello world; sleep 2; done

查看文件修改

docker container diff CONTAINER

可以相对于镜像的文件系统来说,查看容器中做了哪些修改.

# dulei @ dulei-PC in ~ [11:30:21]
$ docker container run \
        --name container_02         -i -t -d         ubuntu /bin/bash
37394323de1fffe9ec81c1d3cd330b9335cec12f53bb1b9f848a0d384079178d

# dulei @ dulei-PC in ~ [11:31:04]
$ docker container attach container_02
[email protected]:/# touch ~/a.txt
[email protected]:/# read escape sequence

# dulei @ dulei-PC in ~ [11:31:48] C:1
$ docker container diff container_02
C /root
A /root/a.txt

通过diif我们可以到新增了a.txt

发送命令

除了在docker container run中 执行命令之外,我们可以向运行中的容器发送命令:

docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]

执行一条命令:

$ docker container exec container_02  ls root
a.txt

执行多条命令:

$ docker container exec container_02 bash -c "cd /root && ls ./"
a.txt

删除容器

docker container rm [OPTIONS] CONTAINER

[OPTIONS]:

  • -f 可以强制删除运行中的container

删除全部container

docker container rm -f $(docker container ls -aq)

docker container ls -aq可以列出所有container的UUID

原文地址:https://www.cnblogs.com/lanrish/p/11984996.html

时间: 2024-10-12 14:31:09

Docker入门二:容器管理的相关文章

Docker之二容器管理

Docker 容器 容器是 Docker 又一核心概念. 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用. 启动容器 所需要的命令主要为 docker run 如图所示我启动一个容器并执行/bin/ls #dockerrun centos-sshd:v1 /bin/ls sudo docker run -t -i centos-sshd:v1/bin/bash 其中, -t 选项让

Docker背后的容器管理——Libcontainer深度解析

Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发

Docker 镜像与容器管理(2)

title: Docker 镜像与容器管理(2) date: 2018-12-14 17:04:05 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.D

docker镜像与容器管理(二)

镜像: 静态的只读文件,是一个只读的模板. 容器: 是从镜像创建的一个运行实例,容器是带有运行时需要的可写文件层. 镜像工作原理:     启动一个新的容器时,docker会加载镜像,在镜像之上添加一个读写层,     并将镜像中的目录复制一份到/var/lib/docker/containers/容器ID的目录下,     容器内修改已存在的文件,会将该文件从只读层复制到读写层,并覆盖只读层的文件,实现了文件系统隔离,     当删除容器后,读写层的数据将会删除,镜像不变. 镜像文件存储:  

docker镜像、容器管理

Docker优势 1) 更高效的利用系统资源 无论是应用执行速度.内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效. 2)更快速的启动时间 Docker 容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级.甚至毫秒级的启 动时间. 3)一致的运行环境 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性 4)持续交付和部署 使用 Docker 可以通过定制应用镜像来实现持续集成.持续交付.部署. 二:为什么要使用Docker 不仅仅开发团队

Docker入门二

容器管理 1.docker create创建一个容器,但容器并没启动,就和我们创建虚拟机一样,创建了虚拟机后没启动 [[email protected] ~]# docker create -it centos6 bash WARNING: IPv4 forwarding is disabled. Networking will not work. 558e31f7b0fb941ca4ee8c1c2b42553b06ac79c0613984b7ad8b9b4ba97f61fd [[email p

docker入门之镜像管理基础

docker镜像管理基础 首发:arppinging 一.镜像概述 1.1 联合挂载 在之前的文章我们提到过,容器是基于镜像启动的,镜像的存储驱动是overlay2 overlayFS将单个Linux主机上的两个目录合成一个目录,这些目录称为层,统一过程被称为联合挂载. 下图是一个docker镜像和docke容器的分层图,docker镜像是lowdir,docker容器是upperdir.而统一的视图层是merged层.如果一个镜像有多层的话,那么它的启动过程需要进行联合挂载,如下图,cento

DOCKER学习_002:Docker的镜像容器管理

一 Docker的基本信息 前面已经安装了Docker,现在看一下已安装Docker的安装环境以及其他信息 1.1 系统环境 [[email protected] ~]# uname -r 3.10.0-957.27.2.el7.x86_64 [[email protected]-server3 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) 1.2 Docker版本 [[email protected] ~]#

docker之docker-compose——容器管理

nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时,必须指定主业任务,如不指定,则容器无事可干立即退出. 2.在dockerfile打包镜像时,可以使用cmd命令来指定一个默认的主业,如下: 3.既然镜像里是默认主业,即意味着创建容器时,可以覆盖此默认命令,如下 推荐的ENTRYPOINT方式 1.镜像本身应该有稳定的主业,应当指定后即不能更改用途,