宁夏建设厅网站旧版,湖南省郴州市宜章县,网站推广的技术有哪些,那些网站分享pr做的视频1.docker 容器创建流程 2.容器运行本质
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建容器基本选项#xff1a;--name#xff1a;为容器命名
-i#xff1a;交互式创建容器
-d#xff1a;后台创建容器
-t#xff1a;为容器分配伪终端
Docker 容器存在的意义就是为…
1.docker 容器创建流程 2.容器运行本质
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建容器基本选项--name为容器命名
-i交互式创建容器
-d后台创建容器
-t为容器分配伪终端
Docker 容器存在的意义就是为了运行容器中的应用对外提供服务所以启动容器的目的就是启动运行该容器中的应用。容器中的应用运行完毕后容器就会自动终止。所以如果不想让容器启动后立即终止运行则就需要使容器应用不能立即结束。通常采用的方式有两种使应用处于与用户交互的状态或等待状态。
3.docker run
从镜像创建并运行一个新容器
格式
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
创建一个centos7.9镜像
[rootlocalhost ~]# docker run -it --name centos7 centos:7.9.2009
[root4c392a1a06d7 /]#
#前台退出容器 ctrlpq
[rootlocalhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c392a1a06d7 centos:7.9.2009 /bin/bash 11 seconds ago Up 10 seconds centos7
前台退出容器快捷键 ctrlpq 容器在后台运行
4.docker exec
在正在运行的容器中执行命令
格式
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
选项
--detach-d分离模式:在后台执行命令
--detach-keys覆盖分离容器的键序列
--env -e设置环境变量
--env-file读写一个环境变量文件
--interactive-i保持STDIN打开即使没有连接
--privileged赋予命令扩展权限
--tty-t分配一个伪终端
--user-u用户名或UID(格式: name| UID [:group|gid])
--workdir-w容器内的工作目录
进入centos7容器中
[rootlocalhost ~]# docker exec -it -w /tmp centos7 /bin/bash
[root4c392a1a06d7 tmp]# pwd
/tmp
docker attach
将本地标准输入、输出和错误流附加到正在运行的容器
格式
docker attach [OPTIONS] CONTAINER
docker exec 与 docker attach的区别 docke exec会新建一个进程来访问容器进程一般与-it选项联合使用一般使用exit命令退出i并终止当前进程 docker attach不会新建进程而是进入容器原有的进程根据情况可以使用exit或者ctrlpq来进行退出容器
5.docker ps
列表容器
格式
docker ps [OPTIONS]
选项
-a-all显示所有容器(默认显示正在运行)
-f根据提供的条件过滤输出
--latest-l显示最新创建的容器(包括所有状态)
--no-trunc不要截断输出
--quiet-q只显示容器id
--size-s显示总文件大小
注意docker ps不支持容器间的文件复制传递
6.docker top
显示容器的运行进程
格式
docker top CONTAINER [ps OPTIONS] 7.docker 容器管理
启动
docker start [OPTIONS] CONTAINER [CONTAINER...]
停止
docker stop [OPTIONS] CONTAINER [CONTAINER...]
#强制停止
docker kill [OPTIONS] CONTAINER [CONTAINER...]
重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
暂停
docker pause CONTAINER [CONTAINER...]
取消暂停
docker unpause CONTAINER [CONTAINER...] 8.docker logs
获取容器日志
格式
docker logs [OPTIONS] CONTAINER
选项
--details显示日志提供的额外详细信息
--follow-f跟踪日志输出
--since显示从时间戳开始的日志(例如2013-01-02T13:23:37Z)或相对日志(例如42m的42minutes)
--tail-n从日志末尾开始显示的行数
-t显示日志时间戳
--until在时间戳之前显示日志(例如2013-01-02T13:23:37Z)或相对显示(例如42m表示42minutes)
查看5秒之前的日志内容的前3行
[rootlocalhost ~]# docker logs --until 5s -n 3 nginx1
2023/07/12 10:04:58 [notice] 1#1: start worker process 32
2023/07/12 10:04:58 [notice] 1#1: start worker process 33
2023/07/12 10:04:58 [notice] 1#1: start worker process 34
9.docker cp
在容器和本地文件系统之间复制文件/文件夹
格式
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
选项
-a归档模式(复制所有uid/gid信息)
--quiet-q在复制过程中抑制进度输出。如果没有终端连接则自动抑制进度输出
10.docker rm
移除一个或多个容器
格式
docker rm [OPTIONS] CONTAINER [CONTAINER...]
选项
--force-f强制移除正在运行的容器(使用SIGKILL)
--link-l移除指定的链接
--volumes-v移除与容器关联的匿名卷
11.docker commit
根据容器的更改创建一个新映像
格式
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
选项
--author-a作者(如John Hannibal Smith hannibala-team.com)
--change-c在创建的镜像上应用Dockerfile指令
--message-m提交消息
--pause-p在提交期间暂停容器
创建一个centos7镜像进行安装net-tools工具然后进行打包成镜像
[rootlocalhost ~]# docker run -itd --name centos centos:7.9.2009
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
[rootlocalhost ~]# docker exec -it centos /bin/bash
[root1d1725c19cbe /]# yum -y install net-tools
进行打包
[rootlocalhost ~]# docker commit -a conquerbug163.com centos centos7:net-tools
sha256:0db0f584d14de19f7b377fa385ea43e7abcb57223f4a51c690c5b1628e882f70
[rootlocalhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 net-tools 0db0f584d14d 6 seconds ago 418MB
然后再基于当前镜像创建容器即可 12.docker导出/导入
docker export
将容器文件系统导出为tar归档文件
格式
docker export [OPTIONS] CONTAINER
选项
--output-o写入文件而不是标准输出
将当前容器进行打包
[rootlocalhost ~]# docker export -o centos.tar centos
[rootlocalhost ~]# ls
centos.tar Dockerfile httpd-2.4.57.tar.gz image.tar my.cnf original-ks.cfg
docker import
从压缩包中导入内容以创建文件系统映像
格式
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
选项
--change-c在创建的镜像上应用Dockerfile指令
--message-m为导入的图像设置提交消息
--platform如果服务器支持多平台请设置平台
将刚刚打包的容器进行还原
[rootlocalhost ~]# docker import centos.tar centos:test
sha256:6bc2adb97476b7b797a5a129c68afcba4ce05ab487812727c7049003f2a1049e
[rootlocalhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test 6bc2adb97476 4 seconds ago 394MB
13.docker镜像/容器导出和导入的区别
export与save export作用于容器save作用于镜像但它们导出的结果都是为tar文件 export一次只能对一个容器进行导出save一次可以对多个镜像进行导出 export只是对当前容器的文件系统快照进行导出其会丢失原镜像的所有历史记录与元数据信息save则是保存了原镜像的完整记录。
import与load import导入的是容器包load加载的是镜像包但最终都会恢复为镜像 import恢复为的镜像已包含当前镜像一层load恢复的镜像与原镜像的分层是完全相同的。 import恢复的镜像就是新构建的镜像与原镜像的imageID不同load恢复的镜像与原镜像是同一个镜像即imageID相同。 import可以为导入的镜像指定从repository与tagload加载的镜像不能指定repository与tag与原镜像的相同
14.docker system
管理码头工人
1.docker system df
查看docker磁盘使用情况
格式
docker system df [OPTIONS]
查看当前系统的docker磁盘使用情况
[rootlocalhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 9 2 1.504GB 1.435GB (95%)
Containers 2 1 213.9MB 213.9MB (100%)
Local Volumes 3 1 6.174MB 1.501MB (24%)
Build Cache 19 0 465.4MB 465.4MB
选项
--format使用自定义模板格式化输出: table :使用docker system events [OPTIONS]
列标题以表格格式打印输出(默认) table template :使用给定的Go模板以表格格式打印输出 json :使用给定的Go模板打印输出。有关使用模板格式化输出的更多信息请参阅https://docs.docker.com/go/formatting/
--verbose-v显示空间使用的详细信息
2.docker system events
从服务器获取实时事件
格式
docker system events [OPTIONS]
选项
--filter-f根据提供的条件过滤输出
--format使用给定的Go模板格式化输出
--since显示自时间戳以来创建的所有事件
--until流事件直到这个时间戳
打开两个终端
终端1
docker system events
终端2
[rootlocalhost ~]# docker stop test
test
查看终端1
[rootlocalhost ~]# docker system events
2023-07-15T17:04:37.33483684808:00 container kill d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (imageprogrium/consul, namegreat_easley, signal15)
2023-07-15T17:04:41.42885448108:00 network disconnect 462ad2de000e7aae527224ae21c66e15aac0e68ed45f96b65528e22e272851fa (containerd1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, namebridge, typebridge)
2023-07-15T17:04:41.43029429808:00 volume unmount 0e452a14a460fdc4cfa0b2644761923359a263fe9abeca5fd1952927231ca0a7 (containerd1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290, driverlocal)
2023-07-15T17:04:41.43035783808:00 container stop d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290 (imageprogrium/consul, namegreat_easley)
3.docker system info
显示系统范围的信息
格式
docker system info [OPTIONS]
与docker info相同
4.docker system prune
移除未使用的数据
格式
docker system prune [OPTIONS]
选项
--all-a删除所有未使用的图片而不仅仅是悬挂的图片
--filter提供过滤器值(例如labelkeyvalue)
--force-f不提示确认
--volumes删除卷
删除当前docker服务器所有没有使用的容器和空名空标签的镜像和没有使用的网络
[rootlocalhost ~]# docker system prune
WARNING! This will remove:- all stopped containers- all networks not used by at least one container- all dangling images- all dangling build cache
翻译
警告!这将删除:
-所有停止的容器
—所有未被至少一个容器使用的网络
-所有悬挂的图像
-所有悬挂的构建缓存
你确定要继续吗?[y / N]
Are you sure you want to continue? [y/N] y
Deleted Containers:
1d1725c19cbe9c6e119f055827a316dd351eb4adeae291a878a39418312daed5
d1a032d521d4e4a02cc7ea497d6d83ac137d4d03e838f4db01e0fe903b2cc290
Deleted Networks:
mynet1
mac_net1
Deleted build cache objects:
kutjwzwfdu28eldqlwo07uax7
0p5xfeo29k8ojauchfzf97kp0
a9puvqnewb05luw84rnanr2lh
y6mdonbx0pvs2trx7xd97738u
kj09ara8y3v3b6f50xtzie6lv
itk7ujtbdy4c2nirz68e2ivck
2a7d9sfcsnvl9owzau11l0jrq
oe2ukyl2cpguwqjm0kddg5tcx
4fom9yi9x5i125uvb96d29ext
tdwcwf0eze1lrvgherr4sxrs5
9hffla6qush85p7jhf89l56ek
Total reclaimed space: 679.3MB[rootlocalhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test 6bc2adb97476 25 hours ago 394MB
centos7 net-tools 0db0f584d14d 26 hours ago 418MB
busybox latest beae173ccac6 18 months ago 1.24MB
nginx latest 605c77e624dd 18 months ago 141MB
voltest latest 3af6982c965f 18 months ago 141MB
redis latest 7614ae9453d1 19 months ago 113MB
mysql 5.7 c20987f18b13 19 months ago 448MB
centos 7.9.2009 eeb6ee3f44bd 22 months ago 204MB
progrium/consul latest 09ea64205e55 8 years ago 69.4MB
[rootlocalhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[rootlocalhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
462ad2de000e bridge bridge local
c598e7da9321 host host local
36391f761fe6 none null local
15.docker create
创建一个新容器
它与run类似但是它唯一的区别就是create只创建容器不运行但是docker run是创建容器并运行
格式
docker create [OPTIONS] IMAGE [COMMAND] [ARG...zz