@xushengkai
2023-07-14T02:39:53.000000Z
字数 26358
阅读 473
自动化运维
centos下安装docker
关闭防火墙和selinux
其他系统参照如下文档
https://docs.docker.com/engine/install/centos/
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum -y install docker-ce#安装k8s时使用yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
//开机自启动systemctl enable docker --now
//这里额外添加了docker的生产环境核心配置cgroupsudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
用于从docker的官方公有镜像仓库查找镜像
[root@localhost ~]# docker search centosNAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos DEPRECATED; The official build of CentOS. 7486 [OK]kasmweb/centos-7-desktop CentOS 7 desktop for Kasm Workspaces 33bitnami/centos-base-buildpack Centos base compilation image 0 [OK]bitnami/centos-extras-base 0couchbase/centos7-systemd centos7-systemd images with additional debug… 6 [OK]···此处省略···//参数解释:Name:镜像的名字DESCRIPTION:描述STARS:星级(越高越好)OFFICIAL:是否是官方发布的AUTOMATED:是否自动化的
[root@localhost ~]# docker search centos -f stars=100NAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos DEPRECATED; The official build of CentOS. 7486 [OK]
#查找官方发布的,星级大于100的centos镜像[root@localhost ~]# docker search centos --filter is-official=true --filter stars=100NAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos DEPRECATED; The official build of CentOS. 7486 [OK]//docker search centos -f is-official=true -f stars=100-f = --filter
用于从Docker Hub上下载公有镜像
#查找符合条件的centos镜像[root@localhost ~]# docker search centos -f is-official=true -f stars=100NAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos DEPRECATED; The official build of CentOS. 7486 [OK]#下载centos镜像[root@localhost ~]# docker pull centosUsing default tag: latestlatest: Pulling from library/centosa1d0c7532777: Pull completeDigest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177Status: Downloaded newer image for centos:latestdocker.io/library/centos:latest
查看本地镜像
[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos latest 5d0da3dc9764 17 months ago 231MB//参数解释:特别说明:REPOSITORY:镜像仓库(下边罗列的都是本地已有镜像名称)TAG:镜像的标记(为了区分同名镜像)IMAGES ID:镜像的ID号CREATED:此镜像的创建时间SIZE:此镜像的大小
用于本地自定义镜像的构建,需要创建Dockerfile文件
注意Dockerfile文件内不能写注释等不然会报错
#创建Dockerfile文件的存储目录[root@192 ~]# mkdir -p /root/dockerfile/lib/centos/7#下载centos7镜像[root@192 ~]# docker pull centos:77: Pulling from library/centos2d473b07cdd5: Pull completeDigest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987Status: Downloaded newer image for centos:7docker.io/library/centos:7#创建docker.sh脚本[root@192 ~]# cd dockerfile/lib/centos/7/[root@192 7]# vim docker.sh#!/bin/bashwhile truedoecho "welcome xushengkai"sleep 4done#创建Dockerfile配置文件,文件名称必须为Dockerfile,第一个字母必须大写[root@192 7]# vim DockerfileFROM centos:7 #基于centos7镜像构建,前提是有这个镜像LABEL MAINTATNER="xushengkai" #作者的名字RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #RUN:在镜像构建过程中运行命令//将系统时间更新为上海时间ADD docker.sh /home/test/ #从本地系统中把docker.sh文件添加到构建中的镜像的/home/test/目录下,目录不存在会自动创建RUN chmod +x /home/test/docker.sh #在镜像构建过程中运行命令CMD ["/home/test/docker.sh"] #构建镜像完成时,最后执行的命令#根据Dockfile配置文件构建一个自定义镜像[root@192 7]# docker build -t xushengkai/centos7:v1 ./[+] Building 0.2s (9/9) FINISHED=> [internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 258B 0.0s=> [internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s=> [internal] load metadata for docker.io/library/centos:7 0.0s=> [1/4] FROM docker.io/library/centos:7 0.0s=> CACHED [2/4] RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 0.0s=> [internal] load build context 0.0s=> => transferring context: 30B 0.0s=> [3/4] ADD docker.sh /home/test/ 0.0s=> [4/4] RUN chmod +x /home/test/docker.sh 0.2s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:3f1765bba10e1eefba1489aacb6901e64ce0171b4d9986ca08622eb5dd7b1a9e 0.0s=> => naming to docker.io/xushengkai/centos7:v1//参数解释:-t:指定镜像名称1:设定镜像的tag标记./:Dockerfile文件的位置[root@192 7]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos7 v1 3f1765bba10e 4 minutes ago 204MBnginx latest 605c77e624dd 13 months ago 141MBcentos 7 eeb6ee3f44bd 17 months ago 204MBcentos latest 5d0da3dc9764 17 months ago 231MB#运行镜像进程,查看结果[root@192 7]# docker run -dit 3f1765bba10e2133c06768040c0726c8f3e05f32b2ba8e1765a81830465f33514ad49301ba9c[root@192 7]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES2133c0676804 3f1765bba10e "/home/test/docker.sh" 14 seconds ago Up 13 seconds friendly_cray[root@192 7]# docker attach 2133welcome xushengkaiwelcome xushengkaiwelcome xushengkaiwelcome xushengkaiwelcome xushengkai//脚本每隔4秒输出一句话
运行一个本地镜像
#下载nginx镜像[root@localhost ~]# docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxa2abf6c4d29d: Pull completea9edb18cadd1: Pull complete589b7251471a: Pull complete186b1aaa4aa6: Pull completeb4df32aa5a72: Pull completea0bcbecc962e: Pull completeDigest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31Status: Downloaded newer image for nginx:latestdocker.io/library/nginx:latest#查看镜像[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB#运行本地镜像nginx[root@localhost ~]# docker run --name=mynginx -dit --restart=always -p 88:80 nginxb97e361570155a0b7850a459b2c11139ff0447a2221f98d51e582ff013bad112//参数解释:docker run:运行一个指定的images id-d:放在后台运行-i:可以进行命令交互-t:制作一个伪终端用于登陆--restart=always: 开机自启-p 88:80 将主机的88端口映射到80端口
查看已经运行的镜像进程
[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe995eee690e4 centos "/bin/bash" About an hour ago Up About an hour funny_maxwellb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#查看所有运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe995eee690e4 centos "/bin/bash" About an hour ago Up About an hour funny_maxwellb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx//特别提示:STATUS:进程的状态,UP表示正在运行中,EXIT表示已经退出了。
从本地系统中切入到某个STATUS状态是UP的镜像进程里
#查看所有已经运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb92e34f5003d centos "/bin/bash" 6 seconds ago Up 5 seconds beautiful_boseb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 32 seconds 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#进入到容器id为b92e34f5003d 的镜像进程里[root@localhost ~]# docker attach b92e34f5003d[root@b92e34f5003d /]# pwd/[root@b92e34f5003d /]# exitexit //退出容器[root@localhost ~]# docker ps -a]CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb92e34f5003d centos "/bin/bash" About a minute ago Exited (0) About a minute ago beautiful_boseb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 2 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx// #容器的进程的STATUS已经处于EXIT状态(之前是后台运行的,切入进去后执行exit就等于手动退出了)
用于停止一个正在运行着的容器进程
#运行本地centos镜像[root@localhost ~]# docker run -dit centos21b27f399c87e6d1f72b0f4f018ea2b0e7c88241a50c1daee5d92fd274b6c6a0#查看所有已经运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES21b27f399c87 centos "/bin/bash" 24 seconds ago Up 23 seconds dreamy_snyderb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 6 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#停止正在运行的centos镜像进程[root@localhost ~]# docker stop 21b221b2#查看所有已经运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES21b27f399c87 centos "/bin/bash" 2 minutes ago Exited (0) 2 seconds ago dreamy_snyderb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 8 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx//centos镜像进程显示已经停止
用于启动一个已经停止了的容器进程
#查看所有已经运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES21b27f399c87 centos "/bin/bash" 2 minutes ago Exited (0) 2 seconds ago dreamy_snyderb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 8 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#启动停止的centos镜像进程[root@localhost ~]# docker start 21b27f399c8721b27f399c87#查看正在运行的镜像进程[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES21b27f399c87 centos "/bin/bash" 5 minutes ago Up 2 seconds dreamy_snyderb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 10 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
用于删除一个已经停止了的容器进程
如果没有停止删除需要加-f参数,强制删除
#查看正在运行的镜像进程[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES21b27f399c87 centos "/bin/bash" 5 minutes ago Up 2 seconds dreamy_snyderb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 10 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#先停止镜像进程,再删除[root@localhost ~]# docker stop 21b2721b27[root@localhost ~]# docker rm 21b2721b27#查看所有已经运行的镜像进程(包含退出的exit)[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 2 hours ago Up 15 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
用于删除一个未用作容器启动的本地镜像,如果正在运行,先停止再删除镜像
不停止镜像进程,强制删除镜像加-f参数强制删除镜像,但镜像进程仍会正常运行
#查看镜像[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 605c77e624dd 13 months ago 141MBmysql latest 3218b38490ce 13 months ago 516MBcentos latest 5d0da3dc9764 17 months ago 231MB#查看正在运行的镜像进程[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 3 hours ago Up 8 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#删除mysql镜像[root@localhost ~]# docker rmi mysql#运行centos镜像进程[root@localhost ~]# docker run -dit centos8d350081a85ee9cd682fe833bee600b9f1b663d39c791a28189aade403327753[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8d350081a85e centos "/bin/bash" 5 seconds ago Up 4 seconds quizzical_borgb97e36157015 nginx "/docker-entrypoint.…" 3 hours ago Up 9 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#强制删除正在运行的镜像进程的镜像[root@localhost ~]# docker rmi -f centosUntagged: centos:latestUntagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177#查看镜像[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 605c77e624dd 13 months ago 141MB<none> <none> 5d0da3dc9764 17 months ago 231MB#查看容器进程,被占用中[root@localhost ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8d350081a85e 5d0da3dc9764 "/bin/bash" 25 seconds ago Up 24 seconds quizzical_borgb97e36157015 nginx "/docker-entrypoint.…" 3 hours ago Up 9 minutes 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
将一个更改过的容器进程的容器状态保存为一个新的镜像
#运行容器镜像[root@192 ~]# docker run -dit centos4ec79c85b27f1b94e5d48c8ab1d9a048e2696f5b3365450b5a1bec738931d165[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4ec79c85b27f centos "/bin/bash" 5 seconds ago Up 5 seconds adoring_haslettb97e36157015 nginx "/docker-entrypoint.…" 24 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#进入容器镜像[root@192 ~]# docker attach 4ec79c85b27f#创建新的目录[root@4ec79c85b27f /]# mkdir yunjisuan[root@4ec79c85b27f /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var yunjisuan#退出容器[root@4ec79c85b27f /]# exitexit[root@192 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4ec79c85b27f centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago adoring_haslettb97e36157015 nginx "/docker-entrypoint.…" 24 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#将更改后的容器进程保存为一个新的镜像[root@192 ~]# docker commit 4ec79c85b27f xushengkai/centos:v1sha256:10cafe821fec04ae85a8269a154d185ba5dcc2db605eb45da5e53ffe1b29c23d[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v1 10cafe821fec 6 seconds ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB#运行新的容器镜像[root@192 ~]# docker run -dit 10cafe821fec9ec1bad789a77d2a180ca5642355225178cf6cbf4f834e737b277d75c49ef0a3[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES9ec1bad789a7 10cafe821fec "/bin/bash" 4 seconds ago Up 3 seconds crazy_almeidab97e36157015 nginx "/docker-entrypoint.…" 24 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#切入新镜像的容器进程[root@192 ~]# docker attach 9ec[root@9ec1bad789a7 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var yunjisuan //之前创建的目录仍旧存在
用于从本地操作系统上直接向容器进程发布执行命令并返回结果
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 25 hours ago Up 2 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#查看容器进程里的/目录下所有内容[root@192 ~]# docker exec b97e36157015 ls /bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
用于从本地操作系统上直接向容器进程发布执行命令并返回结果
[root@192 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 26 hours ago Up 3 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx[root@192 ~]# docker exec b97e ls /tmp1111[root@192 ~]# lsanaconda-ks.cfg#将指定容器进程的/tmp/1111复制到当前目录下[root@192 ~]# docker exec cp b97e36157015:/tmp/1111 ./Error response from daemon: No such container: cp[root@192 ~]# docker cp b97e36157015:/tmp/1111 ./Preparing to copy...Successfully copied 1.536kB to /root/./[root@192 ~]# ls1111 anaconda-ks.cfg#将本地文件复制到容器进程里[root@192 ~]# docker cp anaconda-ks.cfg b97e36157015:/tmpPreparing to copy...Copying to container - 3.072kBSuccessfully copied 3.072kB to b97e36157015:/tmp[root@192 ~]# docker exec b97e ls /tmp1111anaconda-ks.cfg
用于创建一个容器进程,但是并不启动它
[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v1 10cafe821fec About an hour ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB#创建一个镜像的容器进程,但不直接启动[root@192 ~]# docker create -it centos482c947b556e556174004b0f5682cdc49472eee94328a7d212f16041b07fd60f[root@192 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES482c947b556e centos "/bin/bash" 4 seconds ago Created sad_mcleanb97e36157015 nginx "/docker-entrypoint.…" 26 hours ago Up 3 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#启动容器进程[root@192 ~]# docker start 482c482c[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES482c947b556e centos "/bin/bash" About a minute ago Up 3 seconds sad_mcleanb97e36157015 nginx "/docker-entrypoint.…" 26 hours ago Up 3 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
查看容器进程与源镜像做对比,发生了改变的文件或文件夹
[root@192 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES482c947b556e centos "/bin/bash" 5 minutes ago Up 4 minutes sad_mcleanb97e36157015 nginx "/docker-entrypoint.…" 26 hours ago Up 3 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#进入容器镜像[root@192 ~]# docker attach 482c#创建目录和文件[root@482c947b556e /]# mkdir yunjisuan[root@482c947b556e /]# touch /yunjisuan/{1..5}.jpg[root@482c947b556e /]# exitexit#查看容器进程的变化[root@192 ~]# docker diff 482c947b556eA /yunjisuanA /yunjisuan/5.jpgA /yunjisuan/1.jpgA /yunjisuan/2.jpgA /yunjisuan/3.jpgA /yunjisuan/4.jpgC /rootA /root/.bash_history//A是变化的//C是相同的
时时监测容器的变化情况
[root@192 ~]# docker events2023-02-14T12:48:54.229746158+08:00 container destroy 482c947b556e556174004b0f5682cdc49472eee94328a7d212f16041b07fd60f (image=centos, name=sad_mclean, org.label-schema.build-date=20210915, org.label-schema.license=GPLv2, org.label-schema.name=CentOS Base Image, org.label-schema.schema-version=1.0, org.label-schema.vendor=CentOS)//此时界面是卡在这里的,处于监控状态,需要打开一个新的窗口测试
将容器进程的文件系统导出到本地

[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 26 hours ago Up 4 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#将容器进程导出成一个tar包[root@192 ~]# docker export b97e > ./test.tar[root@192 ~]# ls1111 anaconda-ks.cfg test.tar
用于将export导出的文件系统创建为一个镜像
[root@192 ~]# ls1111 anaconda-ks.cfg test.tar#将导出的tar包文件系统生成一个新的镜像[root@192 ~]# docker import test.tar xushengkai/centos:v2sha256:efecc194d3d689f71f56839ef7a68865c3d4c00635d64f85db142b17e6ffc527[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 About a minute ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB
用于查看一个镜像的历史修改纪录
[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 3 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB[root@192 ~]# docker history efecc194d3d6IMAGE CREATED CREATED BY SIZE COMMENTefecc194d3d6 3 minutes ago 140MB Imported from -[root@192 ~]# docker history 10cafe821fecIMAGE CREATED CREATED BY SIZE COMMENT10cafe821fec 5 hours ago /bin/bash 24B5d0da3dc9764 17 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B<missing> 17 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B<missing> 17 months ago /bin/sh -c #(nop) ADD file:805cb5e15fb6e0bb0… 231MB
用于查看当前操作系统的docker运行信息
[root@192 ~]# docker infoClient:Context: defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version: v0.10.2Path: /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version: v2.16.0Path: /usr/libexec/docker/cli-plugins/docker-composescan: Docker Scan (Docker Inc.)Version: v0.23.0Path: /usr/libexec/docker/cli-plugins/docker-scanServer:Containers: 1Running: 1Paused: 0Stopped: 0Images: 4Server Version: 23.0.1Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: systemdCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 31aa4358a36870b21a992d3ad2bef29e1d693becrunc version: v1.1.4-0-g5fd4c4dinit version: de40ad0Security Options:seccompProfile: builtinKernel Version: 3.10.0-862.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 1.024GiBName: 192.168.200.146ID: 755c1dbe-afbb-48dd-95db-ac152e78c883Docker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://82m9ar63.mirror.aliyuncs.com/Live Restore Enabled: falseWARNING: bridge-nf-call-iptables is disabledWARNING: bridge-nf-call-ip6tables is disabled
查看某个镜像的详细信息
[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 7 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB[root@192 ~]# docker inspect 605c77e624dd
强行停止一个或多个正在运行状态的容器进程
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES37462216a16c centos "/bin/bash" 10 seconds ago Up 10 seconds keen_swansonb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx[root@192 ~]# docker kill 37462216a16c37462216a16c[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
用于将一个镜像的文件系统导出到本地(export导出的是容器)

#重新build一个镜像[root@192 ~]# cd dockerfile/lib/centos/7/[root@192 7]# lsDockerfile docker.sh[root@192 7]# docker build -t test:v1 ./[+] Building 0.0s (9/9) FINISHED=> [internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 258B 0.0s=> [internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s=> [internal] load metadata for docker.io/library/centos:7 0.0s=> [1/4] FROM docker.io/library/centos:7 0.0s=> [internal] load build context 0.0s=> => transferring context: 30B 0.0s=> CACHED [2/4] RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 0.0s=> CACHED [3/4] ADD docker.sh /home/test/ 0.0s=> CACHED [4/4] RUN chmod +x /home/test/docker.sh 0.0s=> exporting to image 0.0s=> => exporting layers 0.0s=> => writing image sha256:3f1765bba10e1eefba1489aacb6901e64ce0171b4d9986ca08622eb5dd7b1a9e 0.0s=> => naming to docker.io/library/test:v1 0.0s[root@192 7]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEtest v1 3f1765bba10e 11 minutes ago 204MBxushengkai/centos7 v1 3f1765bba10e 11 minutes ago 204MBnginx latest 605c77e624dd 13 months ago 141MBcentos 7 eeb6ee3f44bd 17 months ago 204MBcentos latest 5d0da3dc9764 17 months ago 231MB#save导出test:1这个镜像(也可以用id号)[root@192 7]# docker save test:v1 > test.tar[root@192 7]# lsDockerfile docker.sh test.tar
用于将save导出到本地的tar包,重新加载为镜像(和源镜像的名字标识完全一样)
用于输出一个容器进程内的操作日志
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx[root@192 ~]# docker logs b97e36157015/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.sh10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf10-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 up2023/02/13 02:59:17 [notice] 1#1: using the "epoll" event method2023/02/13 02:59:17 [notice] 1#1: nginx/1.21.52023/02/13 02:59:17 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)2023/02/13 02:59:17 [notice] 1#1: OS: Linux 3.10.0-862.el7.x86_64
用于将一个或多个容器的进程暂停和恢复
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#暂停容器进程[root@192 ~]# docker pause b97e36157015b97e36157015[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours (Paused) 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#恢复容器进程[root@192 ~]# docker unpause b97e36157015b97e36157015[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx
用于列出一个容器的端口映射及协议
[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 23 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB#启动一个镜像的容器进程 -p 指定本地2222端口映射到容器的233端口[root@192 ~]# docker run -dit -p 2222:233 5d0da3dc9764860a60e76c14d1ef5afd56c392887733226484e1a2d81420e4e39eaa0663e19e[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES860a60e76c14 5d0da3dc9764 "/bin/bash" 3 seconds ago Up 2 seconds 0.0.0.0:2222->233/tcp, :::2222->233/tcp sleepy_agnesib97e36157015 nginx "/docker-entrypoint.…" 29 hours ago Up 7 hours 0.0.0.0:88->80/tcp, :::88->80/tcp mynginx#查看容器进程的端口映射及协议[root@192 ~]# docker port 860a60e76c14233/tcp -> 0.0.0.0:2222233/tcp -> [::]:2222
给容器进程重命名
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 3 seconds ago Up 2 seconds heuristic_swirles#修改名字[root@192 ~]# docker rename heuristic_swirles xushengkai[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" About a minute ago Up About a minute xushengkai
重启一个容器进程
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 2 minutes ago Up 2 minutes xushengkai#重启[root@192 ~]# docker restart 1b407e16577f1b407e16577f[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 2 minutes ago Up 1 second xushengkai
时时输出容器的资源使用情况
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 4 minutes ago Up About a minute xushengkai[root@192 ~]# docker stats 1b407e16577fCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS1b407e16577f xushengkai 0.00% 536KiB / 1.024GiB 0.05% 648B / 0B 0B / 0B 1CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS1b407e16577f xushengkai 0.00% 536KiB / 1.024GiB 0.05% 648B / 0B 0B / 0B 1//只要不暂停,一直输出,加--no-tream只输出一次
用于从一个指定的镜像创建另外一个镜像
[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 37 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MB#根据名字创建[root@192 ~]# docker tag centos:latest centos:v1[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 37 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MBcentos v1 5d0da3dc9764 17 months ago 231MB#根据镜像id创建[root@192 ~]# docker tag 605c77e624dd nginx:v1[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExushengkai/centos v2 efecc194d3d6 38 minutes ago 140MBxushengkai/centos v1 10cafe821fec 5 hours ago 231MBnginx latest 605c77e624dd 13 months ago 141MBnginx v1 605c77e624dd 13 months ago 141MBcentos latest 5d0da3dc9764 17 months ago 231MBcentos v1 5d0da3dc9764 17 months ago 231MB
用于显示指定容器的进程信息
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 27 minutes ago Up 24 minutes xushengkai[root@192 ~]# docker top 1b407e16577fUID PID PPID C STIME TTY TIME CMDroot 8157 8138 0 16:23 pts/0 00:00:00 /bin/bash
用于调整一个或多个容器的启动配置
[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 30 minutes ago Up 27 minutes xushengkai#设置开机自启动[root@192 ~]# docker update --restart=always 1b407e16577f1b407e16577f
version用于显示docker的版本信息
wait用于捕捉一个或多个容器的退出状态,并返回退出状态码
#查看版本信息[root@192 ~]# docker versionClient: Docker Engine - CommunityVersion: 23.0.1API version: 1.42Go version: go1.19.5Git commit: a5ee5b1Built: Thu Feb 9 19:51:00 2023OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 23.0.1API version: 1.42 (minimum version 1.12)Go version: go1.19.5Git commit: bc3805aBuilt: Thu Feb 9 19:48:42 2023OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.16GitCommit: 31aa4358a36870b21a992d3ad2bef29e1d693becrunc:Version: 1.1.4GitCommit: v1.1.4-0-g5fd4c4ddocker-init:Version: 0.19.0GitCommit: de40ad0#监听容器的退出状态并返回状态码[root@192 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1b407e16577f centos "/bin/bash" 36 minutes ago Up 33 minutes xushengkai[root@192 ~]# docker wait 1b407e16577f0 //打开新的窗口stop容器进程
- login用于登陆docker hub官方公有仓库
- logout用于登出docker hub官方公有仓库
- push用于将本地镜像提交到docker hub
DockerHub官方公有镜像仓库:https://hub.docker.com