Docker容器管理
来源:互联网 发布:自身投资知乎 编辑:程序博客网 时间:2024/05/21 19:48
查看启动的容器
[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
查看所有的容器
[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdb70bb3f6068 centos "/bin/bash" 4 weeks ago Exited (137) 3 weeks ago serene_wright
查看本地的镜像列表
[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos-6-x86 latest 8fca9486a39b 7 days ago 341.3 MBcentos_with_net latest 3e8ea8607f08 4 weeks ago 294.9 MBcentos latest 9baab0af79c4 5 weeks ago 196.7 MB
新建容器
[root@localhost ~]# docker create -it centos5ae70c73655fc8ec1aae20d01995d422025fd93216436214c8008a4656b4717e[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5ae70c73655f centos "/bin/bash" 7 seconds ago tender_galileodb70bb3f6068 centos "/bin/bash" 4 weeks ago Exited (137) 3 weeks ago serene_wright
使用docker create命令新建的容器处于停止状态(stopped),可以使用docker start命令启动。docker start命令语法格式:docker start container_id
新建并启动容器
[root@localhost ~]# docker run -it centos-6-x86 /bin/bash[root@d1dec1f9d91e /]# lsbin boot dev etc fastboot home lib lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
docker run命令等价于先执行docker create命令,再执行docker start命令。
这个命令把两个单独的步骤融合到一起了:
第一步是使用底层的镜像创建容器,这一步可以单独执行docker create命令完成;
第二步是启动容器,这一步可以单独执行docker start命令完成。
- -t标志的作用:让Docker分配一个伪TTY
- -i标志的作用:告诉Docker,这是个交互会话,让标准输入(STDIN)保持打开状态
查看内核
[root@d1dec1f9d91e /]# cat /etc/issueCentOS release 6.8 (Final)Kernel \r on an \m[root@d1dec1f9d91e /]# uname -aLinux d1dec1f9d91e 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux[root@d1dec1f9d91e /]# exitexit[root@localhost ~]# uname -aLinux localhost.localdomain 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
在容器里查看内核,实际就是宿主机的内核。(所有容器共用同一个内核)
守护态(Daemonized)运行
添加-d参数实现
[root@localhost ~]# docker run -itd centos-6-x86 /bin/bash359fda80c4ef5c214ffd67bd3c5abdeadfb832ac16849ae0b970d4c81e63e33f[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES359fda80c4ef centos-6-x86 "/bin/bash" 33 seconds ago Up 32 seconds sleepy_mestorf
docker run -d 可以让容器在后台运行,容器启动后返回一个唯一的ID。
进入容器
exec命令
Docker自1.3版本起,提供了exec工具,可直接在容器内运行命令。
[root@localhost ~]# docker exec -it 359 /bin/bash[root@359fda80c4ef /]#
其中,359是容器ID(CONTAINER ID),可简写为前几个字符。
exec工具语法:docker exec -i -t container_id bash
可以临时打开一个虚拟终端并且exit后容器依然运行着
[root@359fda80c4ef /]# exitexit[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES359fda80c4ef centos-6-x86 "/bin/bash" 5 minutes ago Up 5 minutes sleepy_mestorf
attach命令
[root@localhost ~]# docker attach 359[root@359fda80c4ef /]# exitexit[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker attach命令是Docker自带的命令,其语法为:docker attach container_id
。但使用attach命令有时候并不方便。从上面的操作可以看到,exit退出当前终端时,容器就终止了(stopped)。
获取容器的输出信息
docker logs命令语法:docker logs CONTAINER_ID
获取容器的运行历史信息
停止容器
使用docker stop来终止一个运行中的容器,命令语法:docker stop container_id
它会首先向容器发送SIGTERM信号,等待一段时间后(默认为10秒),再发送SIGKILL信号终止容器。
当Docker容器中指定的应用终结时,容器也自动终止。对于只启动了一个终端的容器,用户通过exit命令或Ctrl+d来退出终端时,所建立的容器立刻终止。
清除容器
如果进程出现异常,通常会想立即退出容器。docker kill命令就是为这种需求准备的。用法与docker stop命令类似。
docker kill container_id
docker kill命令会直接发送SIGKILL信号来强行终止容器。
删除容器
docker rm命令删除处于终止状态(stopped)的容器,docker rmi删除镜像。
命令格式:docker rm [OPTIONS] container_id
OPTIONS说明:
- -f:强行终止并删除一个运行中的容器
导出容器
导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,都可使用docker export命令。
命令格式:docker export container_id > file.tar
[root@localhost ~]# docker export db70 > genesis_centos.tar[root@localhost ~]# du -sh genesis_centos.tar273M genesis_centos.tar
可将这些文件传输到其他机器上,在其他机器上通过导入命令实现容器的迁移。
导入容器
先删除container_id为db70的容器
[root@localhost ~]# docker rm db70db70[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES359fda80c4ef centos-6-x86 "/bin/bash" 4 hours ago Exited (130) 4 hours ago sleepy_mestorfd1dec1f9d91e centos-6-x86 "/bin/bash" 4 hours ago Exited (0) 4 hours ago stoic_curie5ae70c73655f centos "/bin/bash" 4 hours ago tender_galileo
导出的文件可以使用docker import命令导入,成为镜像,再用镜像创建容器。
生成file_test的镜像:cat file.tar |docker import – file_test
[root@localhost ~]# cat genesis_centos.tar | docker import - genesis_centos85bc3a58f1349c173ee4832cbf138720064c99472fa9f2b49531ccef76f97987[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEgenesis_centos latest 85bc3a58f134 3 minutes ago 277.6 MBcentos-6-x86 latest 8fca9486a39b 8 days ago 341.3 MBcentos_with_net latest 3e8ea8607f08 4 weeks ago 294.9 MBcentos latest 9baab0af79c4 5 weeks ago 196.7 MB
- docker容器管理
- docker 容器管理上
- docker 容器管理常用命令
- Docker容器管理
- Docker容器管理
- docker实践:容器管理
- Docker 容器管理
- docker容器管理
- 使用nginx管理docker容器
- 通过编排管理 Docker 容器
- Docker安装及容器管理
- Docker容器数据的管理
- 初识docker-管理容器数据
- Docker容器的生命周期管理
- Docker容器中的数据如何进行管理?
- Docker网络管理-外部访问容器
- docker容器与镜像管理方法
- 使用 docker-machine 管理 Azure 容器虚拟机
- 第八周项目2 -建立链串算法库
- 【NOIP2002】字串变换 CODE[VS] 1039
- Weiss-(DSAA - in C,2.9/2.16)快速求幂(递归与非递归)
- Linux鸟哥的私房菜第四章笔记
- Sqlite
- Docker容器管理
- FFT傅立叶变化
- execute(),executeQuery(),executeUpdate()和executeBatch()的使用与区别
- flexsible.js
- 表连接三剑客(嵌套循环连接,哈希连接,排序合并连接)
- XUtils之BitmapUtils和HttpUtils
- LeetCode 401. Binary Watch
- 基于MEAN框架的仿豆瓣电影开发实战(2)
- 算法分析(二)归并排序原理及java实现