【Docker】容器操作(转)
来自:https://www.cnblogs.com/zydev/p/5803461.html
列出主机上的容器
列出正在运行的容器: docker ps
列出所有容器: docker ps -a
列出最近使用的容器,包括没有运行的: docker ps -l
仅列出容器的ID,不包括没有运行的: docker ps q
创建容器
参数:
--name 指定容器的名字
--rm 容器运行完毕会自动删除
-i -t 创建一个提供交互式shell的容器。
-d 在后台运行容器,并且打印出容器的ID。
创建交互式容器
[root@wls12c ~]$ docker run --name weblogic -i -t centos /bin/bash
[root@35e3b0fa9dea /]# exit
exit
对于交互式容器,当退出shell后,容器会关闭。 后面可以通过命令重新启动容器。
创建守护式容器
这种容器指容器可以长期一直运行,没有交互式会话,非常适合容器中运行后台应用程序和服务(如数据库服务、web服务器等)。
[root@wls12c ~]$ docker run -d centos /bin/bash -c "while true;do echo hello docker;sleep 1;done"
af2e15753ec8e27f5a7daad6881cd23c9e098330e9be66920e78e07e8844ac8c
启动和停止容器
docker start/stop/restart continer id/name
docker -t 可以指定时间停止容器,默认是10s
强制停止容器
docker kill continer id/name
附着到一个容器上
docker attach continer id/name
当重新启动容器时,会沿用创建容器(docker run)命令时指定的参数来运行,可能需要按回车才进入。
这时就已经相当于在容器内部了的shell操作了。如果操作过程中,退出了shell。容器也会随之停止。

[root@wls12c ~]$ docker run -i -t centos /bin/bash
[root@cf9b70252ba5 /]# exit
exit
[root@wls12c ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf9b70252ba5 centos "/bin/bash" 22 seconds ago Exited (0) 11 seconds ago happy_bohr
[root@wls12c ~]$ docker start cf9
cf9
[root@wls12c ~]$ docker attach cf9
[root@cf9b70252ba5 /]#

在运行的容器中执行命令

[root@wls12c ~]$ docker exec -t -i af2 /bin/bash
[root@af2e15753ec8 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 03:27 ? 00:00:00 /bin/bash -c while true;do echo hello docker;sleep
root 33 0 0 03:28 ? 00:00:00 /bin/bash
root 54 33 10 03:28 ? 00:00:00 ps -ef
root 55 1 0 03:28 ? 00:00:00 sleep 1

可以通过docker exec命令在容器内部额外启动新进程,退出容器,并不会停止容器。
查看容器的详细信息
查看容器的运行时后台输出信息
docker logs continer id/name

[root@wls12c ~]$ docker logs cf9
[root@cf9b70252ba5 /]# exit
exit
[root@cf9b70252ba5 /]# exit
exit
[root@cf9b70252ba5 /]#
[root@cf9b70252ba5 /]# exit
exit
[root@wls12c ~]$ docker logs af2
hello docker
hello docker
hello docker

利用docker inspect 命令可以查看容器更多的信息。 如ip地址等,这对守护容器还是很有意义的。
删除已经停止运行的容器
[root@wls12c ~]$ docker stop af2
af2
[root@wls12c ~]$ docker rm af2
af2
一次删除所有停止的容器
[root@wls12c ~]$ docker rm $(docker ps -a -q)
查看容器内的改变信息
创建一个容器,会在容器的对应的镜像上增加一个可写层,镜像部分是只读的。通过 diff命令可以看出改变的信息。如:

[root@wls12c ~]$ docker run -i -t centos /bin/bash
[root@224de7986c5f /]# touch demo.ext
[root@224de7986c5f /]# echo hello docker >demo.ext
[root@224de7986c5f /]# rm -rf anaconda-post.log
[root@224de7986c5f /]# exit
exit
[root@wls12c ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
224de7986c5f centos "/bin/bash" 40 seconds ago Exited (0) 3 seconds ago desperate_curie
[root@wls12c ~]$ docker diff 224d
D /anaconda-post.log
A /demo.ext
C /root
A /root/.bash_history

说明:每行代表一个变动的文件或目录。其中 A 表示新增、C表示被修改、D表示被删除
主机和容器之间的文件拷贝
容器--->主机

[root@wls12c ~]$ docker exec -t -i 9f bin/bash
[root@9f49397623ad /]# cat demo.txt
hello
[root@9f49397623ad /]# exit
exit
[root@wls12c ~]$ docker cp 9f:/demo.txt /test
[root@wls12c ~]$ cat /test/demo.txt
hello

主机-->容器
[root@wls12c ~]$ cp ~/1.txt /var/lib/docker/aufs/mnt/9f49397623ade7dfd2beb4d84454cbdb9878a4b22a2bab2e8b5db72bcffe60a0/test [root@wls12c ~]$ docker exec -t -i 9f /bin/bash
[root@9f49397623ad /]# ls /test
1.txt
重命名容器
[root@wls12c ~]$ docker rename stoic_meitner demo
【Docker】容器操作(转)的更多相关文章
- Docker学习(三)docker容器操作
上一篇:Docker学习(二)docker镜像操作 容器是基于镜像创建的,说白了把一个镜像运行起来就是容器 查看容器 docker ps 上面什么也没有,因为我们没有正在运行的容器,下面我门启动一个容 ...
- docker 容器操作( 以 tomcat 为例 )
一.容器操作 一个镜像可以启动多个容器.比如一个 tomcat 镜像,可以启动多个tomcat 容器,启动后的这些 tomcat 都是各自独立的 二.步骤 1.搜索镜像 [root@localhost ...
- Docker 容器操作
1. 创建并运行 一个容器 docker run -it --rm centos:latest bash run 运行容器 -it 以交互方式运行容器 --rm 退出容器后删除容器 cen ...
- Docker容器操作
启动一次容器并执行命令(执行完命令后结束): docker run centos cat /etc/redhat-release 启动容器进入交互模式: docker run -i -t centos ...
- Docker 容器部署 Consul 集群
Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...
- Docker学习(二)docker镜像操作
上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...
- docker--docker 容器操作
6 docker 容器操作 容器是 docker 镜像的运行时实例. 6.1 创建容器 docker run [options] image command [ARG...]options选项: ‐i ...
- Docker 容器shell
版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...
- Docker 容器(container)
版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...
- docker容器介绍
Docker容器 一.什么是Docker? Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Git ...
随机推荐
- Structured Streaming教程(3) —— 与Kafka的集成
Structured Streaming最主要的生产环境应用场景就是配合kafka做实时处理,不过在Strucured Streaming中kafka的版本要求相对搞一些,只支持0.10及以上的版本. ...
- Linux设置和查看环境变量的方法 详解
1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...
- fastcgi协议分析与实例
http://blog.csdn.net/tanswer_/article/details/78879905
- AngualrJS中每次$http请求时的一个遮罩层Directive
在AngualrJS中使用$http每次向远程API发送请求,等待响应,这中间有些许的等待过程.如何优雅地处理这个等待过程呢? 如果我们在等待过程中弹出一个遮罩层,会是一个比较优雅的做法. 这就涉及到 ...
- .Net Core邮件发送之MailKit
一 .在.Net Core中MailKit中提供了邮件的基础封装 它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议 Nuget命令: Install-Package MailKit 官 ...
- go自动补全
安装: get -u github.com/posener/complete/gocomplete gocomplete -install 卸载: gocomplete -uninstall http ...
- iOS开发-观察者模式
观察者模式也被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己.观察者模式中 ...
- mongodb 字符串查找匹配中$regex的用法
官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive 举个例子来说:现 ...
- HTML5 完美解决javascript中iphone手机和android手机复制文本到剪切板问题
1.执行以下解决方案条件:(这个是原理) ①执行复制方法时 所复制文字不能被任何 块级元素和行内块元素和行内元素遮盖否则无效:(解决方案:将文本通过绝对定位或其他方式移除屏幕外) ②ios中不能复制属 ...
- Android launchMode SingleTask newIntent 的问题
前置条件 项目中,采用 MainActivity + 3个 fragment 的模式作为主要框架.MainActivity 使用 singleTask 模式启动.Fragment 采用 show/hi ...