docker info
[root@xiao docker]# docker infoClient:Context: defaultDebug Mode: falsePlugins:app: Docker App (Docker Inc., v0.9.1-beta3)buildx: Build with BuildKit (Docker Inc., v0.6.1-docker)scan: Docker Scan (Docker Inc.)Server:Containers: 8Running: 5Paused: 0Stopped: 3Images: 16Server Version: 20.10.8Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfsCgroup 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 io.containerd.runtime.v1.linux runcDefault Runtime: runcInit Binary: docker-initcontainerd version: e25210fe30a0a703442421b0f60afac609f950a3runc version: v1.0.1-0-g4144b63init version: de40ad0Security Options:seccompProfile: defaultKernel Version: 3.10.0-1062.1.2.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 1.795GiBName: xiaoID: SR3Y:RSZT:2ZAE:M33P:O2LT:55KN:A3XY:WE7V:QXJY:7Z32:M34L:NX7NDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://4h8ex9ed.mirror.aliyuncs.com/Live Restore Enabled: false[root@xiao docker]#
docker version #显示docker的版本信息docker info #显示docker的系统信息,包括镜像和容器的数量docker --help
文档地址: https://docs.docker.com/reference/
port # 查看映射端口对应的容器内部源端口pause # 暂停容器ps # 容器列表pull # 从docker镜像源服务器拉取指定镜像或者库镜像push # 推送指定镜像或者库镜像至docker源服务器restart # 重启运行的容器rm # 移除一个或多个容器rmi # 移除一个或多个镜像 (无容器使用该镜像才可删除,否则需要删除相关容器才可继续或 -f 强制删除)run # 创建一个新的容器并运行一个命令save # 保存一个镜像为一个 tar 包【对应 load】search # 在 docker hub 中搜索镜像start # 启动容器stop # 停止容器tag # 给源中镜像打标签top # 查看容器中运行的进程信息unpause # 取消暂停容器version # 查看 docker版本号wait # 截取容器停止时的退出状态值attach # Attach to a running container #当前shell下attach连接指定运行镜像build # Build an image from a Dockerfile #通过Dockerfile定制镜像commit # Create a new image from a containers changes #提交当前容器为新的镜像cp # Copy files/folders from a container to a HOSTDIR or to STDOUT #从容器中拷贝指定文件或者目录到宿主机中create # Create a new container #创建一个新的容器,同run 但不启动容器diff # Inspect changes on a containers filesystem #查看docker容器变化events # Get real time events from the server#从docker服务获取容器实时事件exec # Run a command in a running container#在已存在的容器上运行命令export # Export a containers filesystem as a tar archive #导出容器的内容流作为一个tar归档文件(对应import)history # Show the history of an image #展示一个镜像形成历史inspect # 查看容器详细信息kill # kill 指定的容器
镜像命令
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE<none> <none> 95a86af3f2e7 4 months ago 570MBjenkins/jenkins latest ba8a0e5dc5cb 4 months ago 570MBnginx latest d1a364dc548d 4 months ago 133MBportainer/portainer latest 580c0e4e98b0 6 months ago 79.1MBhello-world latest d1165f221234 6 months ago 13.3kB# 解释REPOSITORY: 镜像仓库源TAG: 镜像版本信息IMAGE ID: 镜像的IDCREATED: 镜像的创建实际爱你SIZE: 镜像的大小可选参数docker images-a : (--all) 列出所有镜像-q : (--quiet) 只显示镜像ID
搜索镜像
docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 11470 [OK]mariadb MariaDB Server is a high performing open sou… 4354 [OK]mysql/mysql-server Optimized MySQL Server Docker images. Create… 848 [OK]percona Percona Server is a fork of the MySQL relati… 555 [OK]phpmyadmin phpMyAdmin - A web interface for MySQL and M… 332 [OK]centos/mysql-57-centos7 MySQL 5.7 SQL database server 91 [OK]docker search mysql --filter=STARS=3000 # 搜索start数大于3000的NAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql MySQL is a widely used, open-source relation… 11470 [OK]mariadb MariaDB Server is a high performing open sou… 4354 [OK]
拉取镜像
hub 搜索
docker pull 镜像名[:tag]# egdocker pull mysqlUsing default tag: latest # 如果不写tag, 默认就是latestlatest: Pulling from library/mysqla330b6cecb98: Pull complete # 分层下载,docker image 的核心 联合文件系统9c8f656c32b8: Pull complete88e473c3f553: Pull complete062463ea5d2f: Pull completedaf7e3bdf4b6: Pull complete1839c0b7aac9: Pull completecf0a0cfee6d0: Pull complete1b42041bb11e: Pull complete10459d86c7e6: Pull completeb7199599d5f9: Pull complete1d6f51e17d45: Pull complete50e0789bacad: Pull completeDigest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c # 签名Status: Downloaded newer image for mysql:latestdocker.io/library/mysql:latest # 真实地址docker pull mysql等价于docker pull docker.io/library/mysql:latest# 指定tagdocker pull mysql:5.75.7: Pulling from library/mysqla330b6cecb98: Already exists # 联合文件系统,已存在的不再重复下载9c8f656c32b8: Already exists88e473c3f553: Already exists062463ea5d2f: Already existsdaf7e3bdf4b6: Already exists1839c0b7aac9: Already existscf0a0cfee6d0: Already existsfae7a809788c: Pull complete # 下载不存在的dae5a82a61f0: Pull complete7063da9569eb: Pull complete51a9a9b4ef36: Pull completeDigest: sha256:d9b934cdf6826629f8d02ea01f28b2c4ddb1ae27c32664b14867324b3e5e1291Status: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7#查看docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 1d7aba917169 3 weeks ago 448MBmysql latest 0716d6ebcc1a 3 weeks ago 514MB<none> <none> 95a86af3f2e7 4 months ago 570MBjenkins/jenkins latest ba8a0e5dc5cb 4 months ago 570MBnginx latest d1a364dc548d 4 months ago 133MBportainer/portainer latest 580c0e4e98b0 6 months ago 79.1MBhello-world latest d1165f221234 6 months ago 13.3kB
删除镜像
docker rmi -f [镜像名、镜像ID]docker rmi -f 1d7aba917169Untagged: mysql:5.7Untagged: mysql@sha256:d9b934cdf6826629f8d02ea01f28b2c4ddb1ae27c32664b14867324b3e5e1291Deleted: sha256:1d7aba9171693947d53f474014821972bf25d72b7d143ce4af4c8d8484623417Deleted: sha256:94ebbead5c58282fef91cc7d0fb56e4006a72434b4a6ae2cd5be98f369cb8c21Deleted: sha256:989da5efad29ec59bd536cd393d277bc777f8b9b34b8e3ad9593a4b0a83b40f4Deleted: sha256:7457ee6817c678da3cb383d27a3d79d5f3f25fbcb92958d5e8d5709e7631e23cDeleted: sha256:fe7dac53adebe33519b4e4fc577bfcddd7372cc313c35fae681fc82fb325fdc0
容器命令
有了镜像才可以创建容器,下载centos镜像进行学习
docker pull centos
新建容器并启动
docker run [可选参数] imageName/imageId# 参数说明--name "NAME" 容器名字,tomcat01, tomcat02, 用来区分容器-d 后台方式运行-i , -t #使用交互模式运行,可以进入容器查看内容-p #指定容器端口 -p 8080-p ip:主机端口:容器端口 -p 3344:80-p 主机端口:容器端口 (常用)-p 容器端口容器端口-P #随机指定端口
启动容器,并进入容器
[root@iZm5e----- ~]# docker run -it centos /bin/bash[root@c4a1504a9cf9 /]# ls #查看容器内的centosbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var[root@c4a1504a9cf9 /]# exit # 退出容器exit[root@iZm5e----- ~]#
查看所有运行的容器
docker ps #查看运行的容器 exit之后就停止了容器docker ps -a #查看所有运行过的以及在运行的容器docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc4a1504a9cf9 centos "/bin/bash" 7 minutes ago Exited (0) 3 minutes ago hungry_eulerdc0c5076048e hello-world "/hello" 2 months ago Exited (0) 2 months ago busy_coridocker ps -a -n=[数字] # 最近创建的容器docker ps -a -n=1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc4a1504a9cf9 centos "/bin/bash" 11 minutes ago Exited (0) 7 minutes ago hungry_euler
退出容器
exit #容器停止并退出ctrl + p + q #容器不停止退出
删除容器
docker rm 容器ID # 删除指定容器 不能删除正在运行的容器docker rm -f $(docker ps -aq) # 递归删除所有容器docker ps -a -q|xargs docker rm # 删除所有容器
启动和停止容器
docker start 容器ID # 启动容器docker restart 容器ID # 重启容器docker stop 容器ID # 停止当前正在运行的容器docker kill 容器ID # 强制停止当前容器
常用其它命令
后台运行容器
docker run -d centos463f1dc43e444ff6b6d0efd3f0c5047e118ddf64deed3aea2a8b5a6c89df61bb[root@iZm5e----- ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[root@iZm5e----- ~]#
发现后台运行的容器,停止了
docker使用后台运行,就必须要有一个前台进程。否则,docker发现没有服务,就会自动停止
查看日志
docker logs --help#shell脚本造日志docker run -d centos /bin/sh -c "while true;do echo xiao;sleep 1;done"d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b[root@iZm5e----- ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd5033adf13b4 centos "/bin/sh -c 'while t…" 5 seconds ago Up 4 seconds competent_jang[root@iZm5e----- ~]##显示日志docker logs -f -t --tail 10 d5033adf13b42021-09-27T07:05:08.800676670Z xiao2021-09-27T07:05:09.803226803Z xiao2021-09-27T07:05:10.806019019Z xiao2021-09-27T07:05:11.809012200Z xiao2021-09-27T07:05:12.811505073Z xiao2021-09-27T07:05:13.817109532Z xiao2021-09-27T07:05:14.819543508Z xiao2021-09-27T07:05:15.822718210Z xiao...-tf #显示日志--tail [数字] # 显示日志的条数
查看容器中的进程信息 (ps - linux)
docker top命令
docker top 容器IDdocker top d5033adf13b4UID PID PPID C STIME TTY TIME CMDroot 29087 29069 0 15:01 ? 00:00:00 /bin/sh -c while true;do echo xiao;sleep 1;doneroot 29908 29087 0 15:08 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1[root@iZm5e----- ~]#
查看镜像的源数据
dockers inspect 命令
docker inspect d5033adf13b4[{"Id": "d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b","Created": "2021-09-27T07:01:42.833109605Z","Path": "/bin/sh","Args": ["-c","while true;do echo xiao;sleep 1;done"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 29087,"ExitCode": 0,"Error": "","StartedAt": "2021-09-27T07:01:43.288158158Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6","ResolvConfPath": "/var/lib/docker/containers/d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b/resolv.conf","HostnamePath": "/var/lib/docker/containers/d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b/hostname","HostsPath": "/var/lib/docker/containers/d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b/hosts","LogPath": "/var/lib/docker/containers/d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b/d5033adf13b49f537430fc19df9fe00b477301dfd3a2d9c287060c65c1a59d7b-json.log","Name": "/competent_jang","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {"Binds": null,"ContainerIDFile": "","LogConfig": {"Type": "json-file","Config": {}},"NetworkMode": "default","PortBindings": {},"RestartPolicy": {"Name": "no","MaximumRetryCount": 0},"AutoRemove": false,"VolumeDriver": "","VolumesFrom": null,"CapAdd": null,"CapDrop": null,"CgroupnsMode": "host","Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "private","Cgroup": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": false,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": null,"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "runc","ConsoleSize": [0,0],"Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": [],"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"DeviceCgroupRules": null,"DeviceRequests": null,"KernelMemory": 0,"KernelMemoryTCP": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": null,"OomKillDisable": false,"PidsLimit": null,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0,"MaskedPaths": ["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths": ["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]},"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/9aec4e083e254075a863c62c5c54f7ad2d7321750b4384ff1e092e25c5dc257e-init/diff:/var/lib/docker/overlay2/d6e4be0166eac21b08ff7e34bb088bd7488086c5fd04603879424af35f8e6190/diff","MergedDir": "/var/lib/docker/overlay2/9aec4e083e254075a863c62c5c54f7ad2d7321750b4384ff1e092e25c5dc257e/merged","UpperDir": "/var/lib/docker/overlay2/9aec4e083e254075a863c62c5c54f7ad2d7321750b4384ff1e092e25c5dc257e/diff","WorkDir": "/var/lib/docker/overlay2/9aec4e083e254075a863c62c5c54f7ad2d7321750b4384ff1e092e25c5dc257e/work"},"Name": "overlay2"},"Mounts": [],"Config": {"Hostname": "d5033adf13b4","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd": ["/bin/sh","-c","while true;do echo xiao;sleep 1;done"],"Image": "centos","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {"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"}},"NetworkSettings": {"Bridge": "","SandboxID": "182c5e5a4f65a8c8ae6fffc733ef2ff02b9c7ea0e374331017cb651077fb77c6","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/182c5e5a4f65","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "7dd5c90916bf7c472a88dc308498f198b59c9606c144c6d413b77ecc03e05cc1","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:02","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "feafa30d4051f24353508959bd420fd163ad0c98d6b30ec8ff13b59a59552bb1","EndpointID": "7dd5c90916bf7c472a88dc308498f198b59c9606c144c6d413b77ecc03e05cc1","Gateway": "172.17.0.1","IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:02","DriverOpts": null}}}}][root@iZm5e----- ~]#
进入当前正在运行的容器
1、docker exec -it 容器ID bashShell (常用)
docker exec -it d5033adf13b4 /bin/bash[root@d5033adf13b4 /]# lsbin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var[root@d5033adf13b4 /]# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 07:01 ? 00:00:00 /bin/sh -c while true;do echo xiao;sleep 1;doneroot 1895 0 0 07:33 pts/0 00:00:00 /bin/bashroot 1937 1 0 07:33 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1root 1938 1895 0 07:33 pts/0 00:00:00 ps -ef[root@d5033adf13b4 /]#
2、docker attach 容器ID
docker attach d5033adf13b4xiaoxiaoxiaoxiaoxiao...
二者区别
docker exec # 进入容器后,开启一个新的终端,可以在里面操作
docker attach # 进入容器正在执行的终端,不会开启新的进程。
拷贝容器内文件到主机上
手动同步
docker cp 命令
docker cp 容器ID:容器内路径 目的主机路径docker cp 2b7529b86ad0:/home/index.txt /home[root@iZm5e----- ~]# lslife mysql-community-release-el7-5.noarch.rpm study testSH work[root@iZm5e----- ~]# cd /home/[root@iZm5e----- home]# lsindex.txt jenkins test[root@iZm5e----- home]#
问题探索
如何实现自动同步,打通容器和主机
查看cpu内存使用情况
docker stats
每秒刷新

