1.新建并启动容器

docker run [option] images [command][arg]    #根据镜像新建容器并运行。如果本地没有镜像则从docker hub上拉取。
--name 为容器指定名称。
-d    后台运行容器,并返回容器id
-i    交互模式运行容器,通常与 -t同时用
-t    为容器分配伪输入终端。
-P    随机端口映射
-p    指定端口映射,有以下四种格式
    ip:hostport:ContainerPort
    ip::containerPort
    HostPort:ContainerPort
    ContainerPort
docker run centos       #创建/运行/退出容器
docker run -t centos    #创建容器,并进入伪终端,但不能操作。ctrl+c 退出,容器不退出。
docker run -it centos
docker run -it --name mycentos centos
docker run -d centos    #以后台进程方式创建容器并运行,但因为没有可交互的前台进程,所以又被立刻终止。故docker ps 看不到。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest a55fbf438dfd days ago 95MB
mysql latest 7bb2586065cd days ago 477MB
nginx latest 2bcb04bdb83f days ago 109MB
centos latest 9f38484d220f weeks ago 202MB
hello-world latest fce289e99eb9 months ago .84kB
docker run -it 9f38484d220f #启动交互式容器
[root@8e0ffee781f1 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: /bin/bash
root : pts/ :: ps -ef
[root@8e0ffee781f1 /]# exit
exit
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" minutes ago Exited () minutes ago pensive_lumiere
3af63c5c69c6 hello-world "/hello" hours ago Exited () hours ago pensive_dubinsky
[root@localhost ~]# docker rename 8e0ffee781f1 mycentos
[root@localhost ~]# docker start mycentos
mycentos
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" minutes ago Up seconds mycentos
[root@localhost ~]# docker stats mycentos
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8e0ffee781f1 mycentos 0.00% 380KiB / .2MiB 0.04% 656B / 0B 0B / 0B
[root@localhost ~]# docker top mycentos
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: /bin/bash
[root@localhost ~]# docker attach mycentos
不关容器,安全退出: ctrl +p ctrl+q
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up hours mycentos
[root@localhost ~]# docker images centos
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f weeks ago 202MB
[root@localhost ~]# docker run -it --name mycentos01 centos #重新打开一个容器,并命名为mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" About a minute ago Up About a minute mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up hours mycentos

2.列出容器

docker ps -a    显示当前或曾经打开的容器
docker ps -l    显示上一次运行的容器
docker ps -n 3  显示上3次运行的容器
docker ps -ql   只显示上一次运行的容器ID

3.退出容器

exit    #退出并关闭容器
ctrl+p,crl+q #退出但不关闭容器

4.停止容器

docker stop  容器 ID或name
docker stop -t n 容器 ID或name # Seconds to wait for stop before killing it (default 10) 杀掉容器前等待多少秒(默认10s)
直接关闭
docker kill 容器 ID或name
[root@localhost ~]# docker stop mycentos mycentos01    #同时停止多个容器
mycentos
mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4.启动容器

docker start    容器 ID或name
docker restart  容器 ID或name
[root@localhost ~]# docker start mycentos mycentos01
mycentos
mycentos01
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" minutes ago Up seconds mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Up seconds mycentos

5.重启容器

docker restart 容器 ID或name

6.删除停止运行的容器

docker rm 容器 ID或name
docker rm -f 强制删除容器,即使在运行
docker rm -f $(docker ps -qa)      # 删除全部容器
docker ps -qa | xargs docker rm    # 删除全部已停止容器
docker rmi 删除镜像
[root@localhost ~]# docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed1315df6320 centos "/bin/bash" minutes ago Exited () minutes ago mycentos01
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Exited () minutes ago mycentos
[root@localhost ~]# docker rm mycentos01
mycentos01
[root@localhost ~]# docker ps -n2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8e0ffee781f1 9f38484d220f "/bin/bash" hours ago Exited () minutes ago mycentos
3af63c5c69c6 hello-world "/hello" hours ago Exited () hours ago pensive_dubinsky

7.查看所有容器的实时资源占用情况

docker stats

8.查看容器日志

docker logs -f -t --tail 10 容器 ID或name
-f 持续刷新最新日志
-t 显示时间戳
--tail 显示最后几行
[root@localhost ~]# docker run -d --name mycentos1 centos
ba18b348bd9857bde9b25a62d848d6239c1c7c0de302a8bc279185a758efd861
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker run -d --name mycentos2 centos /bin/bash -c "while true;do echo Hello World;sleep 3;done"
21494ef841e27c69877afaf1a0be5ae2bb7d32d6862eb7bfa1e6eb237f04efa3
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21494ef841e2 centos "/bin/bash -c 'while…" seconds ago Up seconds mycentos2
[root@localhost ~]# docker logs -f -t --tail 21494ef841e2
--04T07::.721260403Z Hello World
--04T07::.721904929Z Hello World
--04T07::.723204790Z Hello World
--04T07::.724042843Z Hello World
--04T07::.725116649Z Hello World
...

9.查看容器内进程

docker top 容器 ID或name
[root@localhost ~]# docker run -d centos /bin/bash -c "while true;do echo Nihao;sleep 2 ;done"
4768a70886fcb74cdf00cb19d142fb503a18d2390406dc31ad533d697b423f46
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4768a70886fc centos "/bin/bash -c 'while…" seconds ago Up seconds affectionate_cori
[root@localhost ~]# docker top 4768a70886fc
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/bash -c while true;do echo Nihao;sleep ;done
root : ? :: sleep

10.查看容器细节

docker inspect 容器 ID或name
[root@localhost ~]# docker inspect 4768a70886fc
[
{
"Id": "4768a70886fcb74cdf00cb19d142fb503a18d2390406dc31ad533d697b423f46",
"Created": "2019-04-04T07:48:20.460764642Z",
"Path": "/bin/bash",
"Args": [
"-c",
"while true;do echo Nihao;sleep 2 ;done"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
....
11.进入容器
docker attach 容器 ID或name
docker exec -t -w -u -e 容器 ID或name 命令              # 功能更强大,也能实现登陆容器内部
  -d, --detach Detached mode: run command in the background
  -e, --env list Set environment variables
  -i, --interactive Keep STDIN open even if not attached
  -t, --tty Allocate a pseudo-TTY
  -u, --user string Username or UID (format: <name|uid>[:<group|gid>])
  -w, --workdir string Working directory inside the container
[root@localhost ~]# docker exec -t -w /tmp -uroot -e LANG=en 4768a70886fc ls
ks-script-eC059Y yum.log
[root@localhost ~]# docker exec 4768a70886fc ls /tmp
ks-script-eC059Y
yum.log
[root@localhost ~]# docker exec -it 4768a70886fc ls /tmp
ks-script-eC059Y yum.log
[root@localhost ~]# docker exec -it 4768a70886fc /bin/bash
[root@4768a70886fc /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

12. docker cp

    Copy files/folders between a container and the local filesystem 在本地系统和容器间copy文件或文件夹
[root@localhost ~]# docker cp anaconda-ks.cfg 4768a70886fc:/home
[root@localhost ~]# docker exec 4768a70886fc ls /home
anaconda-ks.cfg [root@localhost ~]# docker exec -it 4768a70886fc ls /tmp
ks-script-eC059Y yum.log
[root@localhost ~]# docker cp 4768a70886fc:/tmp/yum.log /tmp
[root@localhost ~]# ls -l /tmp
总用量
-rw-------. root root 3月 : yum.log

docker run -d /bin/bash -c 的注意点

重启docker 后,会继续执行创建docker 时指定的脚本。
相当于该容器运行的是 镜像+shell 的组合模板。
docker attach 登陆容器后,如果command 命令是前台进程就会一直执行,而不能做其他操作。

Docker 常用命令——容器的更多相关文章

  1. docker常用命令与容器创建

    ################docker安装##################### Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个 ...

  2. docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)

    docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)   一.常用命令 1.显示所有的容器,包括未运行的 docker ps -a   2.启动容器.注 ...

  3. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  4. 『现学现忘』Docker常用命令 — 21、容器常用命令(三)

    目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...

  5. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  6. Docker常用命令(二)

    Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...

  7. Docker应用二:docker常用命令介绍

     Docker常用命令使用介绍 docker中常用的命令: 1.docker search image_name:搜查镜像 2.docker pull image_name:从镜像库中拉去镜像 3.d ...

  8. Docker常用命令汇总,和常用操作举例

    Docker命令 docker 常用命令如下 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secre ...

  9. 1021 docker常用命令和Jenkins搭建

    docker常用命令 1.镜像管理 docker pull (镜像名) # 默认拉取最新版本的镜像 docker pull (镜像名:版本号) #拉取指定版本的镜像 docker push (镜像名) ...

随机推荐

  1. 收藏的几个关于php面向对象教程

    面向对象的分析方法是利用面向对象的信息建模概念,如实体.关系.属性等,同时运用封装.继承.多态等机制来构造模拟现实系统的方法,学会了面向对象思想,能够大大提高php编程开发效率!本篇文章php中文网将 ...

  2. CSS选择器:#id和.class中间有空格和无空格的区别

    相信大家都知道 .class1 .class2 和 .class1.class2 是两种不同的选择规则,但具体怎样不同呢? 首先中间有空格的情况:是选择到.class1类下的.class2类子节点,即 ...

  3. PHP之SimpleXML函数

    使用php创建XML文件十分简单,使用SimpleXML那就更简便了,同时读取XML文件也十分方便.XML文件是直接在浏览器中打开,以自定义标签的方式直观简洁的方式展示给读者. 1.创建XML文件 h ...

  4. Redis(二):c#连接Redis

    1.nuget StackExchange.Redis 2.建立RedisHelper类: public class RedisHelper { /// <summary> /// 连接字 ...

  5. Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解

    hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False.参数object是一个对象 ...

  6. LNMP-day3-php扩展缓存插件

     perl的编译问题 [root@localhost php5.6.33]# echo 'export LC_ALL=C' >> /etc/profile #设置环境变量,解决后面perl ...

  7. Hdfs&MapReduce测试

    Hdfs&MapReduce测试 测试 上传文件到hdfs 随意打开一个文件夹传一个文件试试(把javafx-src.zip传到hdfs的/根目录下):hadoop fs -put javaf ...

  8. python网络爬虫--简单爬取糗事百科

    刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...

  9. BZOJ 1270 雷涛的小猫 dp

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1270 题目大意: 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助 ...

  10. 关于c++ list容器的操作摸索

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chaoweilanmao/article/details/30793859 #include< ...