网站首页 > 技术教程 正文
容器简介
容器是一个镜像的可运行的实例,可以使用Docker REST API或者CLI来操作容器,容器的实质是进程,但与直接在宿主机执行的进程不同,容器进程运行于属于自己的独立的命令空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。
查看容器
用到的命令为docker ps
1. 查看运行中容器
[root@ice ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2. 查看所有容器
查看所有容器只需加上-a参数
[root@ice ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2703796a7188 nginx "nginx -g 'daemon ..." 6 minutes ago Up 6 minutes 80/tcp myngin
3. 创建&&运行容器
用到的命令为`docker run`,当利用docker来创建常见容器时,Docker在后台运行的标准操作包括
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读可写
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个IP地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
4. 创建时运行容器
创建一个busybox容器,并且打印出Hello World
[root@ice ~]# docker run -i -t busybox /bin/echo "Hello World" Unable to find image 'busybox:latest' locally Trying to pull repository docker.io/library/busybox ... latest: Pulling from docker.io/library/busybox 8c5a7da1afbc: Pull complete Digest: sha256:cb63aa0641a885f54de20f61d152187419e8f6b159ed11a251a09d115fdff9bd Status: Downloaded newer image for docker.io/busybox:latest Hello World
成功了打印了Hello World,那么这样就可以长久的运行容器嘛?答案当然是否
当我们想长久运行容器的时候还要加上-d让其在后台运行
[root@ice ~]# docker run -d nginx 008a544b9ac0492d57694b3b5d7d8a33b6e10394d739f34f61e1964d3c6f3609
使用docker ps查看正在运行的容器
[root@ice ~]# docker ps CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES 008a544b9ac0 nginx "nginx -g 'daemon ..." 3 minutes ago Up 3 minutes 80/tcp gallant_volhard
- 这里要注意,容器的运行跟容器的生命周期有关,也就是所`docker run`有关和`-d`参数无关。只要启动时执行的该命令不结束,容器也就不会退出。
5. 启动已存在的容器
用到的命令为docker start
使用docker ps -a查看所有容器
[root@ice ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2703796a7188 nginx "nginx -g 'daemon ..." 15 minutes ago Exited (0) 8 minutes ago mynginx 008a544b9ac0 nginx "nginx -g 'daemon ..." About an hour ago Up About an hour 80/tcp gallant_volhard 0422bd90fd5c busybox "sh" About an hour ago Exited (0) About an hour ago quizzical_payne
发现有两个容器SATUS是终止状态,选择启动Name为mynginx的容器
[root@ice ~]# docker start 2703796a7188 2703796a7188
查看运行中的容器
[root@ice ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2703796a7188 nginx "nginx -g 'daemon ..." 19 minutes ago Up 2 seconds 80/tcp mynginx 008a544b9ac0 nginx "nginx -g 'daemon ..." About an hour ago Up About an hour 80/tcp gallant_volhard
终止容器
用到的命令为docker stop
终止CONTAINER ID为2703796a7188容器
[root@ice ~]# docker stop 2703796a7188 2703796a7188
查看运行中的容器
[root@ice ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 008a544b9ac0 nginx "nginx -g 'daemon ..." About an hour ago Up About an hour 80/tcp gallant_volhard
登录容器
用到的命令为`docker exec`命令,以上面后台运行的nginx为例,登录一下它
查看运行文件
[root@ice ~]# docker exec -it 008a544b9ac0 ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr [root@ice ~]# docker exec -it 008a544b9ac0 ls bin bash dmesg gzip mountpoint sh umount zfgrep cat dnsdomainname hostname mv sh.distrib uname zforce chgrp domainname ln nisdomainname sleep uncompress zgrep chmod echo login pidof stty vdir zless chown egrep ls pwd su wdctl zmore cp false lsblk rbash sync which znew dash fgrep mkdir readlink tailf ypdomainname date findmnt mknod rm tar zcat dd grep mktemp rmdir tempfile zcmp df gunzip more run-parts touch zdiff dir gzexe mount sed true zegrep
启动bash文件
[root@ice ~]# docker exec -it 008a544b9ac0 /bin/bash root@008a544b9ac0:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@008a544b9ac0:/# exit exit [root@ice ~]#
- -i:以交互模式运行容器,通常与 -t 同时使用。
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
- /bin/bash:表示载入容器后运行bash
· 为什么我要进行查询,而不是直接引用了/bin/bash?是因为不是所有的镜像都安装了shell,有的镜像需要使用/bin/sh运行
删除容器
容器在运行中是不能直接删除的,需要添加-f参数强制删除容器
强制删除运行中容器
[root@ice ~]# docker rm -f 008a544b9ac0 008a544b9ac0
查看运行中的容器
[root@ice ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
删除停止的容器
查看所有容器
[root@ice ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2703796a7188 nginx "nginx -g 'daemon ..." 33 minutes ago Exited (0) 9 minutes ago mynginx 0422bd90fd5c busybox "sh" About an hour ago Exited (0) About an hour ago quizzical_payne
删除容器
[root@ice ~]# docker rm 2703796a7188 2703796a7188
查看所有容器
[root@ice ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0422bd90fd5c busybox "sh" About an hour ago Exited (0) About an hour ago quizzical_payne
删除所有处于终止状态容器
docker rm $(docker ps -aq)
猜你喜欢
- 2024-10-16 LNMP环境搭建-nginx(lnmp搭建后怎么做网站)
- 2024-10-16 进阶必备 | Linux系统管理工具 supervisor 详解,代码齐全可复制
- 2024-10-16 K8S 之 Ingress-nginx 源码解析(k8s nginx配置)
- 2024-10-16 编排系统K8S Ingress-nginx源码解析
- 2024-10-16 让博客Docker化,轻松上手Docker(博客登录界面)
- 2024-10-16 「这些都不知道你就是个弟弟」Docker常用命令
- 2024-10-16 容器技术:Podman 与 RESTful 接口
- 2024-10-16 Docker:网络模式详解(docker五种网络模式)
- 2024-10-16 k8s日志收集 多pod挂载不同目录方案
- 2024-10-16 Docker部署前端Web项目(docker部署webdav)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)