docker基础及命令
1.启动docker
sudo systemctl start dockersudo systemctl restart dockersudo systemctl stop dockersudo systemctl status docker
2.查看docker信息
sudo docker info
Containers: 1Running: 0Paused: 0Stopped: 1Images: 2Server Version: 17.03.1-ceStorage Driver: devicemapperPool Name: vgdocker-thinpoolPool Blocksize: 524.3 kBBase Device Size: 10.74 GBBacking Filesystem: xfsData file:Metadata file:Data Space Used: 2.708 GBData Space Total: 20.4 GBData Space Available: 17.69 GBMetadata Space Used: 1.917 MBMetadata Space Total: 213.9 MBMetadata Space Available: 212 MBThin Pool Minimum Free Space: 2.039 GBUdev Sync Supported: trueDeferred Removal Enabled: trueDeferred Deletion Enabled: trueDeferred Deleted Device Count: 0Library Version: 1.02.135-RHEL7 (2016-11-16)Logging Driver: json-fileCgroup Driver: cgroupfsPlugins:Volume: localNetwork: bridge host macvlan null overlaySwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 4ab9917febca54791c5f071a9d1f404867857fccrunc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfeinit version: 949e6faSecurity Options:seccompProfile: defaultKernel Version: 3.10.0-123.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 3.69 GiBName: wglID: 2GXU:7CL7:ETAC:BTYX:M4V6:JSMV:3CIJ:4OZC:KKKX:D5IV:DVBX:T3KVDocker Root Dir: /var/lib/dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/WARNING: bridge-nf-call-iptables is disabledWARNING: bridge-nf-call-ip6tables is disabledExperimental: falseInsecure Registries:127.0.0.0/8Live Restore Enabled: false
3.运行第一个容器
sudo docker run --name wgl_centos -i -t centos /bin/bashsudo docker rename oldername newname
-i 保证容器中stdin是开启的,尽管我们并没有附着到容器中,是交互式shell的半边天;-t 是另一半边天,他告诉docker为要创建的容器分配一个伪tty终端。如要在命令行下创建一个我们能与之经行交互的容器,而不是一个运行后台服务的容器,这两个是基本的了。
4.查看宿主机容器列表
sudo docker ps -a #显示全部容器sudo docker ps -l #列出最后一个运行的容器,也可以--format进一步控制显示sudo docker ps -n x #显示最后x个容器。
5.启动,停止容器
sudo docker start(restart,stop) 容器ID(容器name)
6,附着到容器上
sudo docker attach 容器
例如
sudo docker start dreamy_knuth 先启动(启动后会沿用run命令时指定的参数运行)
sudo docker attach dreamy_knuth 后附着到容器,【及进入交互界面】
相当于
sudo docker start dreamy_knuth
sudo docker exec -i -t dreamy_knuth /bin.bash(可用于打开一个守护式容器)
7,创建守护式容器
sudo docker run --name wgl_centos_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 3;done"
在后台运行,只返回容器ID。
-d 在后台运行
8.获取守护式容器的日志
sudo docker logs 容器 #输出最后几条后返回sudo docker logs -f 容器 #监控日志sudo docker logs --tail 10 容器 #获取容器日志最后10条sudo docker logs --tail 0 -f 容器 #跟踪最新日志sudo docker logs -ft 容器 #监控日志+时间戳
9.dockers日志驱动
sudo docker run --log-driver="syslog" --name wgl_centos_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 3;done"
--log-driver=
syslog 将容器日志重新定向到Syslog,禁用dockers logs命令
json-file 默认,用dockers logs命令查看
none 禁用所有容器中的日志,禁用dockers logs命令
10.查看容器进程
sudo docker top wgl_centos_daemon
11.docker统计信息
sudo docker stats [容器1 容器2 容器3 ...]

12.在容器内部运行进程
后台式任务与交互式任务
后台式任务
sudo docker exec -d 53fc4852ce08 touch /opt/wgl.log # -u 为新启动的进程指定属主
通过docker exec 后台命令,可维护,监控,管理正在运行的容器
进入容器(不论是守护式还是交互式)的交互式界面
sudo docker exec -it 53fc4852ce08 /bin/bash
13,自动重启容器
sudo docker run --restart=always --name wgl_centos_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 3;done"
--restart会检查日期的退出代码
always 不认退出代码是什么,都重启
on-failure 退出代码非0才重启,还可以设置重启次数:--restart=on-failure:5
14.深入容器,容器详情
sudo docker inspect 容器
[dwsoft@wgl ~]$ sudo docker inspect wgl_centos_daemon[{"Id": "53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a","Created": "2017-05-28T05:35:00.155823247Z","Path": "/bin/sh","Args": ["-c","while true;do echo hello world;sleep 3;done"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 6450,"ExitCode": 0,"Error": "","StartedAt": "2017-05-28T05:35:01.363485741Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:8140d0c64310d4e290bf3938757837dbb8f806acba0cb3f6a852558074345348","ResolvConfPath": "/var/lib/docker/containers/53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a/resolv.conf","HostnamePath": "/var/lib/docker/containers/53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a/hostname","HostsPath": "/var/lib/docker/containers/53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a/hosts","LogPath": "/var/lib/docker/containers/53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a/53fc4852ce081422068efa8bdcbad05d8b51b4fe2ba0a4389c91508dc3fbd50a-json.log", "Name": "/wgl_centos_daemon","RestartCount": 0,"Driver": "devicemapper","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,"Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "","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": 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": "devicemapper","Data": {"DeviceId": "76","DeviceName": "docker-253:1-277138-721bd5780ec0a2800c9db53413e77636e96e787a4b330b9d665c2cf289c01c43","DeviceSize": "10737418240"}},"Mounts": [],"Config": {"Hostname": "53fc4852ce08","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 hello world;sleep 3;done"],"Image": "centos","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {"build-date": "20170510","license": "GPLv2","name": "CentOS Base Image","vendor": "CentOS"}},"NetworkSettings": {"Bridge": "","SandboxID": "dc56c0446f06b8b53b914574c34ec35c09fa38bc9d43d70ba5750aef60915597","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/dc56c0446f06","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "0da7299f69c100fce911e1c6b12f333e56ff30e3ff7a2f799ee595af89265fc8","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": "23e919387bcf6493c7bdcd91e31b8995132fb7f081cfbac7778e855c6a4f6d58","EndpointID": "0da7299f69c100fce911e1c6b12f333e56ff30e3ff7a2f799ee595af89265fc8","Gateway": "172.17.0.1","IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:02"}}}}]
也可用-f或--format,查看选定的结果,可查看多个容器,多个结果。

15,删除容器
sudo docker rm 容器sudo docker rm -f 容器 #删除正在运行的容器- sudo docker rm `sudo docker ps -a -q` # -q只返回容器ID

浙公网安备 33010602011771号