来自: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】容器操作(转)的更多相关文章

  1. Docker学习(三)docker容器操作

    上一篇:Docker学习(二)docker镜像操作 容器是基于镜像创建的,说白了把一个镜像运行起来就是容器 查看容器 docker ps 上面什么也没有,因为我们没有正在运行的容器,下面我门启动一个容 ...

  2. docker 容器操作( 以 tomcat 为例 )

    一.容器操作 一个镜像可以启动多个容器.比如一个 tomcat 镜像,可以启动多个tomcat 容器,启动后的这些 tomcat 都是各自独立的 二.步骤 1.搜索镜像 [root@localhost ...

  3. Docker 容器操作

    1. 创建并运行 一个容器 docker run -it --rm   centos:latest  bash run  运行容器 -it  以交互方式运行容器 --rm  退出容器后删除容器 cen ...

  4. Docker容器操作

    启动一次容器并执行命令(执行完命令后结束): docker run centos cat /etc/redhat-release 启动容器进入交互模式: docker run -i -t centos ...

  5. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  6. Docker学习(二)docker镜像操作

    上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...

  7. docker--docker 容器操作

    6 docker 容器操作 容器是 docker 镜像的运行时实例. 6.1 创建容器 docker run [options] image command [ARG...]options选项: ‐i ...

  8. Docker 容器shell

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  9. Docker 容器(container)

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  10. docker容器介绍

                       Docker容器 一.什么是Docker? Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Git ...

随机推荐

  1. JavaScript数组所有API全解密

    全文共13k+字,系统讲解了JavaScript数组的各种特性和API. 数组是一种非常重要的数据类型,它语法简单.灵活.高效. 在多数编程语言中,数组都充当着至关重要的角色,以至于很难想象没有数组的 ...

  2. .net里Release的pdb文件有什么用 是否可以删除

    程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接. 在使用 /debug 生成时,会创建一个 PDB 文件. 可以使用 /debug:full 或 / ...

  3. How to chain a command after sudo su?

    The idea is simple, for example: alias foo='sudo su foo && cd /tmp' However, it does not exe ...

  4. IOS Using UIAlertView to show alerts

    UIAlertView in other words, it's a dialog box. You want to show a message or ask user to confirm an ...

  5. Android 自定义TextView 实现文本间距

    Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacin ...

  6. Apktool编译找不到“keyboardNavigationCluster”

    喜欢用使用apktool来反编译.编译安卓程序,然后用其他工具来分析.签名.优化等,它比其他工具的优点是不易出错. 命令 反编译命令:apktool d -f XX.apk -o 反编译输出的目录(如 ...

  7. akka actors默认邮箱介绍

    1. UnboundedMailbox is the default unbounded MailboxType used by Akka Actors ”无界邮箱“ 是akka actors默认使用 ...

  8. Shell获取某目录下所有文件夹的名称

    查看目录下面的所有文件: #!/bin/bash cd /目标目录 for file in $(ls *) do echo $file done 延伸的方法,查看目录下面的所有目录 #!/bin/ba ...

  9. 在Razor中输出Html的两种方式

    Razor中所有的Html都会自动编码,这样就不需要我们手动去编码了(安全),但在需要输出Html时就是已经转义过的Html文本了,如下所示: @{ string thisTest = "& ...

  10. MySQL binlog_format (Mixed,Statement,Row)[转]

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点. MySQL ...