容器操作基础命令随记
容器操作基础命令
命令周期
一次性启动容器docker run
一次性运行容器,退出后立即删除,用于测试
[root@localhost ~]# docker run --rm alpine cat /etc/issue
Welcome to Alpine Linux 3.17
Kernel \r on an \m (\l)[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7baaa64d341 nginx "/docker-entrypoin..." 4 minutes ago Up 4 minutes 80/tcp quizzical_visvesvaraya
0a2ec19dde80 nginx "/docker-entrypoin..." 18 minutes ago Exited (0) 17 minutes ago practical_mayer
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 6 hours ago Exited (1) 6 hours ago elastic_payne
创建容器后直接进入并退出
#执行exit退出后容器关闭
[root@localhost ~]# docker run -it --name alpine2 alpine
/ # cat /etc/
cat: read error: Is a directory
/ # cat
/ # ls
bin etc lib mnt proc run srv tmp var
dev home media opt root sbin sys usr
/ #
/ # exit #退出后容器停止运行
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c40aef438238 alpine "/bin/sh" About a minute ago Exited (0) 6 seconds ago alpine2
df2d23a5c303 nginx "/docker-entrypoin..." 3 minutes ago Exited (0) 2 minutes ago nginx2
b7baaa64d341 nginx "/docker-entrypoin..." 51 minutes ago Up 51 minutes 80/tcp quizzical_visvesvaraya
0a2ec19dde80 nginx "/docker-entrypoin..." About an hour ago Exited (0) About an hour ago practical_mayer
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 6 hours ago Exited (1) 6 hours ago elastic_payne
[root@localhost ~]# docker run -it --name alpine3 alpine
/ # ^C
/ # exit
#同时按ctrl+p+q 三个键退出后,容器不停止
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74140a7dc4ed alpine "/bin/sh" About a minute ago Exited (130) 42 seconds ago alpine3
c40aef438238 alpine "/bin/sh" 5 minutes ago Exited (0) 4 minutes ago alpine2
df2d23a5c303 nginx "/docker-entrypoin..." 7 minutes ago Exited (0) 5 minutes ago nginx2
b7baaa64d341 nginx "/docker-entrypoin..." 55 minutes ago Exited (0) 2 minutes ago quizzical_visvesvaraya
0a2ec19dde80 nginx "/docker-entrypoin..." About an hour ago Exited (0) About an hour ago practical_mayer
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 6 hours ago Exited (1) 6 hours ago elastic_payne
守护式容器:
- 能够长期运行
- 无需交互式会话
- 适合运行应用程序和服务
启动前台守护式进程
[root@localhost ~]# docker run nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/12/05 13:31:03 [notice] 1#1: using the "epoll" event method
2022/12/05 13:31:03 [notice] 1#1: nginx/1.23.2
2022/12/05 13:31:03 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2022/12/05 13:31:03 [notice] 1#1: OS: Linux 3.10.0-862.el7.x86_64
2022/12/05 13:31:03 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/12/05 13:31:03 [notice] 1#1: start worker processes
2022/12/05 13:31:03 [notice] 1#1: start worker process 28
2022/12/05 13:31:03 [notice] 1#1: start worker process 29
启动后台守护式容器
[root@localhost ~]# docker run -d nginx
de713a9d19fb6d5ca36c87b26e2a122714eefe85c90e151c4875577c3dea7c36
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de713a9d19fb nginx "/docker-entrypoin..." 16 seconds ago Up 15 seconds 80/tcp hardcore_mahavira
#有一些容器后台启动不会持续运行
默认容器重启宿主机不会自动启动,需要设置开机自启
docker run -d --name nginx --restart=always -p 80:80 nginx
–privileged选项
使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。
让容器获取root权限
[root@localhost ~]# docker run -it -d --privileged nginx
[root@localhost ~]# docker exec -it 9f0364af37f2e sh
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
|-sda1 8:1 0 1G 0 part
`-sda2 8:2 0 19G 0 part
sr0 11:0 1 906M 0 rom
查看容器信息
docker ps [OPTIONS]
选项:
-a, --all Show all containers (default shows just running)
-q, --quiet Only display numeric IDs
-s, --size Display total file sizes
-f, --filter filter Filter output based on conditions provided
-l, --latest Show the latest created container (includes all states)
-n, --last int Show n last created containers (includes all states)
(default -1)
#查看运行的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f0364af37f2 nginx "/docker-entrypoin..." 3 minutes ago Up 3 minutes 80/tcp confident_wing
de713a9d19fb nginx "/docker-entrypoin..." 11 minutes ago Up 11 minutes 80/tcp hardcore_mahavira#显示全部的容器,包括退出状态的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f0364af37f2 nginx "/docker-entrypoin..." 4 minutes ago Up 4 minutes 80/tcp confident_wing
2308e2dc92c7 nginx "/docker-entrypoin..." 5 minutes ago Exited (0) 4 minutes ago pedantic_lichterman
de713a9d19fb nginx "/docker-entrypoin..." 12 minutes ago Up 12 minutes 80/tcp hardcore_mahavira
1fae1b41d472 nginx "/docker-entrypoin..." 14 minutes ago Exited (0) 13 minutes ago sleepy_morse
b7baaa64d341 nginx "/docker-entrypoin..." About an hour ago Exited (0) 22 minutes ago quizzical_visvesvaraya
0a2ec19dde80 nginx "/docker-entrypoin..." About an hour ago Exited (0) About an hour ago practical_mayer
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 7 hours ago Exited (1) 7 hours ago elastic_payne
#只查看退出的容器
[root@localhost ~]# docker ps -f "status=exited"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2308e2dc92c7 nginx "/docker-entrypoin..." 6 minutes ago Exited (0) 6 minutes ago pedantic_lichterman
1fae1b41d472 nginx "/docker-entrypoin..." 16 minutes ago Exited (0) 15 minutes ago sleepy_morse
b7baaa64d341 nginx "/docker-entrypoin..." About an hour ago Exited (0) 24 minutes ago quizzical_visvesvaraya
0a2ec19dde80 nginx "/docker-entrypoin..." About an hour ago Exited (0) About an hour ago practical_mayer
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 7 hours ago Exited (1) 7 hours ago elastic_payne#只显示容器ID
[root@localhost ~]# docker ps -a -q
9f0364af37f2
2308e2dc92c7
de713a9d19fb
1fae1b41d472
b7baaa64d341
0a2ec19dde80
f6f7197e1c0d#显示容器大小
[root@localhost ~]# docker ps -a -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
9f0364af37f2 nginx "/docker-entrypoin..." 9 minutes ago Up 9 minutes 80/tcp confident_wing 1.09 kB (virtual 142 MB)
2308e2dc92c7 nginx "/docker-entrypoin..." 9 minutes ago Exited (0) 9 minutes ago pedantic_lichterman 1.09 kB (virtual 142 MB)
de713a9d19fb nginx "/docker-entrypoin..." 16 minutes ago Up 16 minutes 80/tcp hardcore_mahavira 1.09 kB (virtual 142 MB)
1fae1b41d472 nginx "/docker-entrypoin..." 18 minutes ago Exited (0) 17 minutes ago sleepy_morse 1.09 kB (virtual 142 MB)
b7baaa64d341 nginx "/docker-entrypoin..." About an hour ago Exited (0) 27 minutes ago quizzical_visvesvaraya 1.09 kB (virtual 142 MB)
0a2ec19dde80 nginx "/docker-entrypoin..." About an hour ago Exited (0) About an hour ago practical_mayer 1.09 kB (virtual 142 MB)
f6f7197e1c0d 1ca69d1bf49a "catalina.sh run" 7 hours ago Exited (1) 7 hours ago elastic_payne 0 B (virtual 474 MB)#显示最新创建的容器(停止的容器也能显示)
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f0364af37f2 nginx "/docker-entrypoin..." 11 minutes ago Up 11 minutes 80/tcp confident_wing
查看容器内的进程
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f0364af37f2 nginx "/docker-entrypoin..." 12 minutes ago Up 12 minutes 80/tcp confident_wing
de713a9d19fb nginx "/docker-entrypoin..." 19 minutes ago Up 19 minutes 80/tcp hardcore_mahavira
[root@localhost ~]# docker top 9f0364af37f2
UID PID PPID C STIME TTY TIME CMD
root 12591 12575 0 21:40 pts/1 00:00:00 nginx: master process nginx -g daemon off;
101 12641 12591 0 21:40 pts/1 00:00:00 nginx: worker process
101 12642 12591 0 21:40 pts/1 00:00:00 nginx: worker process
查看容器资源使用情况
docker stats [OPTIONS] [CONTAINER...]
Display a live stream of container(s) resource usage statistics
Options:
-a, --all Show all containers (default shows just running)--format string Pretty-print images using a Go template--no-stream Disable streaming stats and only pull the first result--no-trunc Do not truncate output
[root@localhost ~]# docker stats 9f0364af37f2
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
9f0364af37f2 0.00% 1.977 MiB / 1.936 GiB 0.10% 648 B / 648 B 8.19 kB / 14.3 kB 3
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
9f0364af37f2 0.00% 1.977 MiB / 1.936 GiB 0.10% 648 B / 648 B 8.19 kB / 14.3 kB 3
#限制内存使用大小
[root@localhost ~]# run -d --name elasticsearch -p 9200:9200 -p 9300:9300
-e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m"
elasticsearch:7.6.2
#查看容器的详细信息
[root@localhost ~]# docker inspect 9f0364
[{"Id": "9f0364af37f2e57e164a5c5cabca592aa2647a5969e58c0e256d123ddd512e33","Created": "2022-12-05T13:40:26.024870946Z","Path": "/docker-entrypoint.sh","Args": ["nginx","-g","daemon off;"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 12591,"ExitCode": 0,"Error": "","StartedAt": "2022-12-05T13:40:26.263471921Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:88736fe827391462a4db99252117f136b2b25d1d31719006326a437bb40cb12d","ResolvConfPath": "/var/lib/docker/containers/9f0364af37f2e57e164a5c5cabca592aa2647a5969e58c0e256d123ddd512e33/resolv.conf","HostnamePath": "/var/lib/docker/containers/9f0364af37f2e57e164a5c5cabca592aa2647a5969e58c0e256d123ddd512e33/hostname","HostsPath": "/var/lib/docker/containers/9f0364af37f2e57e164a5c5cabca592aa2647a5969e58c0e256d123ddd512e33/hosts","LogPath": "","Name": "/confident_wing","RestartCount": 0,"Driver": "overlay2","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {"Binds": null,"ContainerIDFile": "","LogConfig": {"Type": "journald","Config": {}},"NetworkMode": "default","PortBindings": {},"RestartPolicy": {"Name": "no","MaximumRetryCount": 0},"AutoRemove": false,"VolumeDriver": "","VolumesFrom": null,"CapAdd": null,"CapDrop": null,"Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "","Cgroup": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": true,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": ["label=disable"],"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "docker-runc","ConsoleSize": [0,0],"Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": null,"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"DiskQuota": 0,"KernelMemory": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": -1,"OomKillDisable": false,"PidsLimit": 0,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0},"GraphDriver": {"Name": "overlay2","Data": {"LowerDir": "/var/lib/docker/overlay2/37be5b88929dbacfc1bb6a8261eebec9cbc64901c5dad748545f1c9b87511038-init/diff:/var/lib/docker/overlay2/123e463d6c5d6be68ae28d44cf7a94609a2ea65aec9a2504279c284a79a0ccd5/diff:/var/lib/docker/overlay2/97493a1a8b79f5fa5995298ffa63ada448c9809c20b1ad9a26090900ce8e8001/diff:/var/lib/docker/overlay2/3e6953ea3ddefc3fe32c31151935ebd49a74cbab3d7b16262a62d4b753dd416b/diff:/var/lib/docker/overlay2/5594f280528430e925f3ef35b6a91674ff1be95a721a3166548602a24916f63d/diff:/var/lib/docker/overlay2/c57ac6832a9a6084c6a58136092600f9edd6586d20f6ef5eaae860ad034a80de/diff:/var/lib/docker/overlay2/6808292a4f65f555b987700ef19d8e80f36c8038cc22a918ec878ebba66d283c/diff","MergedDir": "/var/lib/docker/overlay2/37be5b88929dbacfc1bb6a8261eebec9cbc64901c5dad748545f1c9b87511038/merged","UpperDir": "/var/lib/docker/overlay2/37be5b88929dbacfc1bb6a8261eebec9cbc64901c5dad748545f1c9b87511038/diff","WorkDir": "/var/lib/docker/overlay2/37be5b88929dbacfc1bb6a8261eebec9cbc64901c5dad748545f1c9b87511038/work"}},"Mounts": [],"Config": {"Hostname": "9f0364af37f2","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"80/tcp": {}},"Tty": true,"OpenStdin": true,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.23.2","NJS_VERSION=0.7.7","PKG_RELEASE=1~bullseye"],"Cmd": ["nginx","-g","daemon off;"],"Image": "nginx","Volumes": null,"WorkingDir": "","Entrypoint": ["/docker-entrypoint.sh"],"OnBuild": null,"Labels": {"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"},"StopSignal": "SIGQUIT"},"NetworkSettings": {"Bridge": "","SandboxID": "37deffc865f72444001cd21beef553eff41eb32055ac52f71499351ae21a02a7","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {"80/tcp": null},"SandboxKey": "/var/run/docker/netns/37deffc865f7","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "87a8b8df3d302be4098bff1d2ee3df8b2e9534bf35336f42445972374265fe09","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.3","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:03","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "c4cc8e1907ddde91359cfba674cb182658718ed8dcc3e55007ad34f26c34425f","EndpointID": "87a8b8df3d302be4098bff1d2ee3df8b2e9534bf35336f42445972374265fe09","Gateway": "172.17.0.1","IPAddress": "172.17.0.3","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:03"}}}}
]#选择性查看
[root@localhost ~]# docker inspect -f "{{.Created}}" c
2022-12-05 09:38:04.272576423 +0800 CST
容器的启动和停止
#docker start|stop|restart|pause|unpause 容器ID#批量正常启动或关闭所有容器
docker start $(docker ps -a -q)
docker stop $(docker ps -a -q)
进入正在运行的容器
- attach方式
docker attach 容器名,attach 类似于vnc,操作会在同一个容器的多个会话界面同步显示,所有使用此方式进入容器的操作都是同步显示的,且使用exit退出后容器自动关闭,不推荐使用,需要进入到有shell环境的容器
docker attach [OPTIONS] CONTAINER
- exec方式
在运行中的容器启动新进程,可以执行单次命令,以及进入容器测试环境使用此方式,使用exit退出,但容器还在运行,此为推荐方式
docker exec -it 容器ID bash|sh
docker 暴露端口
docker run -P 可以将事先容器预定义的所有端口映射宿主机的随机端口,默认从32768开始使用随机端口 时,当停止容器后再启动可能会导致端口发生变化
ocker start $(docker ps -a -q)
docker stop $(docker ps -a -q)
进入正在运行的容器1. attach方式docker attach 容器名,attach 类似于vnc,操作会在同一个容器的多个会话界面同步显示,所有使用此方式进入容器的操作都是同步显示的,且使用exit退出后容器自动关闭,不推荐使用,需要进入到有shell环境的容器docker attach [OPTIONS] CONTAINER2. exec方式在运行中的容器启动新进程,可以执行单次命令,以及进入容器测试环境使用此方式,使用exit退出,但容器还在运行,此为推荐方式docker exec -it 容器ID bash|shdocker 暴露端口docker run -P 可以将事先容器预定义的所有端口映射宿主机的随机端口,默认从32768开始使用随机端口 时,当停止容器后再启动可能会导致端口发生变化
容器操作基础命令随记相关推荐
- 容器处于restarting状态_Docker容器操作-基础命令
docker container run 该命令用于启动新容器,该命令的最简单的形式是接收镜像和命令作为参数.镜像用于创建容器,而命令则是希望容器运行的应用. $ docker container r ...
- 02 文件操作基础命令
02 文件操作基础命令 1. Linux系统的单根目录结构 linux与windows的目录结构对比 绝对路径与相对路径 一切皆文件的设计思想 文件的时间 ls -l 文件名 仅看的是文件的修改时间 ...
- DockerKubernetes ❀ Docker镜像与容器相关操作基础命令详解
文章目录 1.Docker信息查询 1.1 版本信息 1.2 详细信息 1.3 帮助命令 2.镜像命令 2.1 本地镜像查看 2.2 镜像搜索 2.3 镜像拉取 2.4 镜像删除 3.容器命令 3.1 ...
- linux基础命令怎么记,linux基础命令--笔记(示例代码)
linux基础命令--笔记 一. 1 . --help 命令简单帮助 2. man 查看命令复杂帮助 (非内置命令) 3 . help (bash的内置命令)如 :help cd .hel ...
- 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21056029 . 1. Linux运行等级介绍 Lin ...
- Linux基础命令及用户相关操作
Linux基础命令及用户相关操作 基础命令 在根下边创建目录log: 查询以.log结尾的文件,将他们复制到创建好的目录中: 查看目录确认复制成功: 用gzip的方式对其进行压缩: 到根下查看,存在压 ...
- 什么是docker及docker的基础命令
文章目录 1. 简介 1.1 特性 1.2 组件 1.3 版本 2. 安装部署 2.1 安装说明 2.2 centos7安装 2.3 Debian&Ubuntu 3. 运行docker 3. ...
- docker几个基础命令及nodejs容器
最近在了解docker使用,在网上找资料发现很少有可以系统的了解某一个操作目的的大部分细节的参考,学起来非常吃力.耗时. 这里整理了一下自己在入门摸索过程中的几个入门级的操作,可以连贯的对实现一个no ...
- docker命令介绍,镜像制作,容器启动,进入容器操作等
1:在linux安装docker环境一键安装命令: curl -sSL https://get.daocloud.io/docker | sh 2:查看 Docker 是否安装成功: docker v ...
最新文章
- ViewPager Indicator的使用方法
- 电子书下载:Programming Windows Phone 7 SE2
- sql数字转换为字符_Python|图片转换为字符画^_^
- simplejson.scanner.JSONDecodeError: Extra data: line 1 column 22089 - line 1 column 22090
- 杭电1879继续畅通工程
- PAT L2-003. 月饼
- 对 5G “迟钝”的苹果,该如何后来居上?| 极客头条
- Linux 的 ‘sort’命令的14个有用的范例(一)
- 如何让内容页调用样式表?
- [Bada开发]使用静态库
- 无限循环 for(;;) 与 while(true) 的区别
- Composer下载以及安装
- 使用Kettle 进行行Oracle数据迁移时处理编码转换处理US7ASCII 编码
- JavaScript自写逻辑思维导图(非常详细)
- 究竟什么是项目管理?它的主要内容是什么呢?
- kindle paperwhite 使用体验
- 视频处理系列︱利用达摩院ModelScope进行视频人物分割+背景切换(一)
- jarsigner签名APK完整步骤
- 利用高德api实现自定义区域下钻
- 【编程入门】开源记事本(安卓版)