安装完成docker容器服务之后,需要了解如何操作它?在shell命令行下直接输入docker就可以查看帮助信息,如下。
[root@localhost ~]# docker
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/root/.docker")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
Commands:
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Run 'docker COMMAND --help' for more information on a command.
1、docker start/stop/restart/kill
启动/停止/重启/杀掉容器
实例操作如下:
[root@docker ~]# docker start myweb
[root@docker ~]# docker stop myweb
[root@docker ~]# docker restart myweb
[root@docker ~]# docker kill -s kill myweb
参数 -s #向容器发送信号
2、docker run
创建并启动一个新的容器
常用参数如下:
-d #后台运行容器,并返回容器ID
-i #以交互式模式运行容器,常与-t参数同时使用
-t #给容器重新分配一个伪终端,常与-i参数同时使用
–name #给容器指定一个名称
-m #指定容器使用内存的最大值
–net #指定容器使用的网络类型
–link #链接到另一个容器
实例操作如下:
[root@docker ~]# docker run -d --name nginx nginx:latest
#后台启动并运行一个名为nginx的容器,运行前它会自动去docker镜像站点下载最新的镜像文件
[root@docker ~]# docker run -d -P 80:80 nginx:latest
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口
[root@docker ~]# docker run -d -v /docker/data:/docker/data -P 80:80 nginx:latest
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口,并且将物理机的/docker/data目录映射到容器的/docker/data
[root@docker ~]# docker run -it nginx:latest /bin/bash
#以交互式模式运行容器,然后在容器内执行/bin/bash命令
3、docker rm
删除容器
常用参数如下:
-f #强制删除一个运行中的容器
-l #删除指定的链接
-v #删除与容器关联和卷
实例操作如下:
[root@docker ~]# docker rm -f mydocker
#强制删除容器mydocker
[root@docker ~]# docker rm -f dockerA dockerB
#强制删除容器dockerA,dockerB
[root@docker ~]# docker rm -v mydocker
#删除容器,并删除容器挂载的数据卷
4、docker create
创建一个新的容器但不启动它
[root@docker ~]# docker create --name myserver nginx:latest
WARNING: IPv4 forwarding is disabled. Networking will not work.
556dad825da66acc88256c0afc53c59661803aab127cbacb70573517fd3bc684
#创建一个名为myserver的容器
5、docker exec
在运行的容器中执行命令
常用参数如下:
-d #在后台运行
-i #保持STDIN打开
-t #分配一个伪终端
实例操作如下:
[root@docker ~]# docker exec -it mydocker /bin/sh /server/scripts/docker.sh
hello world!!!!!!!!!!
#以交互模式执行容器中的/server/scripts/docker.sh脚本
[root@docker ~]# docker exec -it mydocker /bin/sh
root@b1a0703e41e7:/#
#以交互模式给容器分配一个伪终端连接
6、docker ps
列出容器(正在运行)
常用参数如下:
-a #列出所有容器包括停止的
-f #根据条件过滤显示内容
-l #列出最近创建的容器
-n #列出最近创建的N个容器,N为数字
-q #只显示容器ID
-s #显示总文件大小
实例操作如下:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1e55c604af8 nginx:latest "nginx -g 'daemon of…" 6 hours ago Up 6 hours 80/tcp nginx
#列出正在运行的容器
[root@localhost ~]# docker ps -n 2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
556dad825da6 nginx:latest "nginx -g 'daemon of…" 2 minutes ago Created myserve
r1f71aba9af784 nginx:latest "nginx -g 'daemon of…" 3 minutes ago Created myserve
#列出最近创建的2个容器
[root@localhost ~]# docker ps -a -q
556dad825da6
f71aba9af784
c1e55c604af8
1171e690d0cf
b6befc2ea1b6
#显示所有容器的ID
7、docker inspect
获取容器的元数据
常用参数如下:
-f #指定返回值格式或模板文件
-s #显示总文件大小
–type #为指定类型返回JSON
实例操作如下:
[root@localhost ~]# docker inspect c1e55c604af8
[
{
"Id": "c1e55c604af86a4497f484929ca2670673ba92c42109993a7006c63164b53cf0",
"Created": "2019-07-21T04:30:53.856190094Z",
"Path": "nginx",
"Args": [
"-g",
"daemon off;"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 53753,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-07-21T04:30:56.392914568Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:98ebf73aba7518b5a9efff20c676f77b8a2e2c5863f685a15d1bd1afaf582c3e",
"ResolvConfPath": "/var/lib/docker/containers/c1e55c604af86a4497f484929ca2670673ba92c42109993a7006c63164b53cf0/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/c1e55c604af86a4497f484929ca2670673ba92c42109993a7006c63164b53cf0/hostname",
"HostsPath": "/var/lib/docker/containers/c1e55c604af86a4497f484929ca2670673ba92c42109993a7006c63164b53cf0/hosts",
"LogPath": "/var/lib/docker/containers/c1e55c604af86a4497f484929ca2670673ba92c42109993a7006c63164b53cf0/c1e55c604af86a4497f4
84929ca2670673ba92c42109993a7006c63164b53cf0-json.log", "Name": "/nginx",
"RestartCount": 0,
"Driver": "devicemapper",
"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,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "shareable",
"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,
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": 0,
"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": {
"DeviceId": "27",
"DeviceName": "docker-8:3-1075425412-dfbdaa2eb35660f12ddefe302309257b0315430976b62bd1cd036c52fe718334",
"DeviceSize": "10737418240"
},
"Name": "devicemapper"
},
"Mounts": [],
"Config": {
"Hostname": "c1e55c604af8",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.17.1",
"NJS_VERSION=0.3.3",
"PKG_RELEASE=1~stretch"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "nginx:latest",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "b953131d461f30b4d419994a16f2da7d9ef1deeac5f4bee9c3eac5f8a9af42d8",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": null
},
"SandboxKey": "/var/run/docker/netns/b953131d461f",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "8ddb8013abe8d7a7c456f8ab7e95f04bd7f94746328a5263b1e0f2f153138916",
"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": "86e0dde0fa0a02740b0bb9994c150da7924588a9f664c80ff6a65049edf5799c",
"EndpointID": "8ddb8013abe8d7a7c456f8ab7e95f04bd7f94746328a5263b1e0f2f153138916",
"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
}
}
}
}
]
#获取容器ID为bd96d72ed9c7的元数据信息
[root@docker ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cadvisor
172.17.0.3
[root@docker ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' influxdb
172.17.0.2
#获取容器名为influxdb\cadvisor的IP地址
8、docker logs
获取容器的日志
常用参数如下:
-f #跟踪日志输出
-t #显示时间戳
–tail #只显示最新n条容器日志
–since #显示某个开始时间的所有日志
实例操作如下:
[root@docker ~]# docker logs -f cadvisor
I0523 09:22:10.794233 1 storagedriver.go:48] Using backend storage type "influxdb"
I0523 09:22:10.794295 1 storagedriver.go:50] Caching stats in memory for 2m0s
I0523 09:22:10.794551 1 manager.go:151] cAdvisor running in container: "/sys/fs/cgroup/cpuacct,cpu"
I0523 09:22:10.810585 1 fs.go:139] Filesystem UUIDs: map[]
I0523 09:22:10.810599 1 fs.go:140] Filesystem partitions: map[shm:{mountpoint:/dev/shm major:0 minor:47 fsType:tmpfs blockSize:0} overlay:{mountpoint:/ major:0 minor:46 fsType:overlay blockSize:0} tmpfs:{mountpoint:/dev major:0 minor:50 fsType:tmpfs blockSize:0} /dev/mapper/centos-root:{mountpoint:/rootfs,ro major:253 minor:0 fsType:xfs blockSize:0} /dev/sda1:{mountpoint:/rootfs,ro/boot major:8 minor:1 fsType:xfs blockSize:0} /dev/mapper/centos-home:{mountpoint:/rootfs,ro/home major:253 minor:2 fsType:xfs blockSize:0}]
W0523 09:22:10.812419 1 info.go:52] Couldn't collect info from any of the files in "/etc/machine-id,/var/lib/dbus/machine-id"
I0523 09:22:10.812460 1 manager.go:225] Machine: {NumCores:1 CpuFrequency:2799091 MemoryCapacity:8203235328 HugePages:[{PageSize:2048 NumPages:0}] MachineID: SystemUUID:564D5235-FED8-3630-AA2B-D65F0855D036 BootID:fd7b3fb5-e74f-4280-80cf-0a7096239619 Filesystems:[{Device:tmpfs DeviceMajor:0 DeviceMinor:50 Capacity:4101615616 Type:vfs Inodes:1001371 HasInodes:true} {Device:/dev/mapper/centos-root DeviceMajor:253 DeviceMinor:0 Capacity:140633964544 Type:vfs Inodes:68681728 HasInodes:true} {Device:/dev/sda1 DeviceMajor:8 DeviceMinor:1 Capacity:1063256064 Type:vfs Inodes:524288 HasInodes:true} {Device:/dev/mapper/centos-home DeviceMajor:253 DeviceMinor:2 Capacity:21464350720 Type:vfs Inodes:10485760 HasInodes:true} {Device:shm DeviceMajor:0 DeviceMinor:47 Capacity:67108864 Type:vfs Inodes:1001371 HasInodes:true} {Device:overlay DeviceMajor:0 DeviceMinor:46 Capacity:140633964544 Type:vfs Inodes:68681728 HasInodes:true}] DiskMap:map[253:0:{Name:dm-0 Major:253 Minor:0 Size:140660178944 Scheduler:none} 253:1:{Name:dm-1 Major:253 Minor:1 Size:8455716864 Scheduler:none} 253:2:{Name:dm-2 Major:253 Minor:2 Size:21474836480 Scheduler:none} 2:0:{Name:fd0 Major:2 Minor:0 Size:4096 Scheduler:deadline} 8:0:{Name:sda Major:8 Minor:0 Size:171798691840 Scheduler:deadline}] NetworkDevices:[{Name:eth0 MacAddress:02:42:ac:11:00:03 Speed:10000 Mtu:1500}] Topology:[{Id:0 Memory:8589467648 Cores:[{Id:0 Threads:[0] Caches:[{Size:32768 Type:Data Level:1} {Size:32768 Type:Instruction Level:1} {Size:262144 Type:Unified Level:2}]}] Caches:[{Size:26214400 Type:Unified Level:3}]}] CloudProvider:Unknown InstanceType:Unknown InstanceID:None}
#跟踪查看容器cadvisor的日志
9、docker port
显示指定容器的端口映射
实例操作如下:
[root@docker ~]# docker port cadvisor
8080/tcp -> 0.0.0.0:8082
#显示cadvisor容器的端口映射信息
10、docker commit
用已存在的容器重新创建一个新的镜像
常用参数如下:
-a #提交的镜像作者
-c #使用Dockerfile指令来创建镜像
-m #提交时附上说明文字
-p #在commit时,将容器暂停
实例操作如下:
[root@docker ~]# docker commit -a "mingongge" -m "add a new images" bd96d72ed9c7 newdocker_images:v1.0.0
sha256:20ee805752cb7cae660fbae89d7c6ea4a9c6372f16a6cb079ecf6c79f87ed8c9
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newdocker_images v1.0.0 20ee805752cb 7 seconds ago 62.2 MB
#将容器bd96d72ed9c7重新生成一个新的镜像名为newdocker_images
11、docker cp
用于容器与物理主机之间拷贝文件
实例操作如下:
[root@docker ~]# docker cp /data/index.html bd96d72ed9c7:/web/
#将物理主机中的/data/index.html拷贝到容器bd96d72ed9c7:/web/目录下
[root@docker ~]# docker cp /data/index.html bd96d72ed9c7:/web/index.php
#将物理主机中的/data/index.html拷贝到容器bd96d72ed9c7:/web/目录下并改名为index.php
[root@docker ~]# docker cp bd96d72ed9c7:/web /data/
#拷贝容器bd96d72ed9c7:/web/目录到物理主机中的/data/目录下
12、docker login/logout
用于登录与登出容器镜像仓库
docker login #登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout #登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
常用参数如下:
-u #登陆的用户名
-p #登陆的密码
实例操作如下:
[root@localhost ~]# docker login -u username -p password
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@localhost ~]# docker logout
Removing login credentials for https://index.docker.io/v1/
#登录与登出默认的容器镜像仓库
13、docker pull/push
docker pull #从镜像仓库中拉取或者更新指定镜像
docker push #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
实例操作如下
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
0a4690c5d889: Already exists
9719afee3eb7: Already exists
44446b456159: Already exists
Digest: sha256:9e0e99c6d1cd9d436b4dc3f4865b55da71a68e4adfac591fbfe144d29ba8d14c
Status: Image is up to date for nginx:latest
#从镜像仓库中拉取或者更新指定镜像,输出信息如上
[root@localhost ~]# docker push newdocker_images:v1.0.0
The push refers to repository [docker.io/library/newdocker_images]
An image does not exist locally with the tag: newdocker_images
#上传镜像到镜像仓库上
14、docker images
显示系统本地容器镜像文件
常用参数如下:
-a #列出所有的镜像(含中间映像层,默认,过滤掉中间映像层);
–digests #显示镜像的摘要信息;
-f #显示满足条件的镜像;
–format #指定返回值的模板文件;
–no-trunc #显示完整的镜像信息;
-q #只显示镜像ID。
实例操作如下:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 98ebf73aba75 3 days ago 109MB
jumpserver/jms_koko 1.5.0 4b9099c2e296 4 weeks ago 39.3MB
jumpserver/jms_guacamole 1.5.0 1bb99405b003 7 weeks ago 670MB
#列出本地所有的镜像
[root@localhost ~]# docker images -q
98ebf73aba75
4b9099c2e296
1bb99405b003
#只显示容器ID
[root@localhost ~]# docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED
SIZEnginx latest sha256:9e0e99c6d1cd9d436b4dc3f4865b55da71a68e4adfac591fbfe144d29ba8d14c 98ebf73aba75 3 days ago
109MBjumpserver/jms_koko 1.5.0 sha256:add8e76e2423406c0c6420553f5903fa40ec55209dd9b9e786aded36f1f4feb2 4b9099c2e296 4 weeks ago
39.3MBjumpserver/jms_guacamole 1.5.0 sha256:01645d2be23befc29ef88fb3941fc056ffc936e0795657320393889968d5ec38 1bb99405b003 7 weeks ago
670MB[root@localhost ~]# docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest sha256:98ebf73aba7518b5a9efff20c676f77b8a2e2c5863f685a15d1bd1afaf582c3e 3 days ago 109MB
jumpserver/jms_koko 1.5.0 sha256:4b9099c2e296101b0aae585af0b79d189045559e2036c0a5455aa44975ea4783 4 weeks ago 39.3MB
jumpserver/jms_guacamole 1.5.0 sha256:1bb99405b003eb14db8f72c76e5f62e85e137734f970ebbe8c7f15a780dde156 7 weeks ago 670MB
#可以对比下两个参数显示的不同信息
15、docker rmi
删除镜像
常用参数如下:
-f #强制删除
实例操作如下:
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newdocker_images v1.1.0 858cbd9ba687 6 seconds ago 62.2 MB
newdocker_images v1.0.0 20ee805752cb 36 minutes ago 62.2 MB
docker.io/grafana/grafana latest 4700307f41f2 9 days ago 238 MB
registry.jumpserver.org/public/guacamole 1.0.0 6300349f2642 2 months ago 1.23 GB
docker.io/google/cadvisor latest 75f88e3ec333 5 months ago 62.2 MB
docker.io/tutum/influxdb latest c061e5808198 19 months ago 290 MB
[root@docker ~]# docker rmi 20ee805752cb
Untagged: newdocker_images:v1.0.0
Deleted: sha256:20ee805752cb7cae660fbae89d7c6ea4a9c6372f16a6cb079ecf6c79f87ed8c9
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newdocker_images v1.1.0 858cbd9ba687 39 seconds ago 62.2 MB
docker.io/grafana/grafana latest 4700307f41f2 9 days ago 238 MB
registry.jumpserver.org/public/guacamole 1.0.0 6300349f2642 2 months ago 1.23 GB
docker.io/google/cadvisor latest 75f88e3ec333 5 months ago 62.2 MB
docker.io/tutum/influxdb latest c061e5808198 19 months ago 290 MB
#删除一个镜像
16、docker tag
标记本地镜像
实例操作如下:
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newdocker_images v1.1.0 858cbd9ba687 39 seconds ago 62.2 MB
[root@docker ~]# docker tag newdocker_images:v1.1.0 newdocker_images:v2
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
newdocker_images v1.1.0 858cbd9ba687 4 minutes ago 62.2 MB
newdocker_images v2 858cbd9ba687 4 minutes ago 62.2 MB
#从结果可以看出两个容器的ID是一样的,只是TAG改变了,类似于linux中文件与文件的硬链接一样,其两者的inode号相同。
17、docker build :
使用Dockerfile创建镜像
常用参数如下:
-f #指定要使用的Dockerfile路径
--label=[] #设置镜像使用的元数据;
-m #设置内存最大值
--memory-swap #设置Swap的最大值为内存+swap,"-1"表示不限swap
--no-cache #创建镜像的过程不使用缓存
--pull #尝试去更新镜像的新版本
-q #安静模式,成功后只输出镜像ID
--rm #设置镜像成功后删除中间容器
--ulimit #Ulimit配置
实例操作如下:
[root@docker ~]# docker build https://github.com/nginxinc/docker-nginx/
18、docker history
查看指定镜像的创建历史
常用参数如下:
-H #以可读的格式打印镜像大小和日期,默认为true;
--no-trunc #显示完整的提交记录;
-q #仅列出提交记录ID。
实例操作如下:
[root@localhost ~]# docker history nginx
IMAGE CREATED CREATED BY SIZE COMMENT
98ebf73aba75 3 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 3 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
<missing> 3 days ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 3 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 0B
<missing> 3 days ago /bin/sh -c set -x && addgroup --system -… 54.1MB
<missing> 3 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~stretch 0B
<missing> 3 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.3.3 0B
<missing> 3 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.17.1 0B
<missing> 3 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 11 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 11 days ago /bin/sh -c #(nop) ADD file:966bd7368f1e5a3e4… 55.3MB
19、docker info
显示 Docker 系统信息,包括镜像和容器数
实例操作如下:
[root@localhost ~]# docker info
Containers: 5
Running: 3
Paused: 0
Stopped: 2
Images: 3
Server Version: 18.09.6
Storage Driver: devicemapper
Pool Name: docker-8:3-1075425412-pool
Pool Blocksize: 65.54kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Udev Sync Supported: true
Data file: /dev/loop0
Metadata file: /dev/loop1
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Data Space Used: 1.047GB
Data Space Total: 107.4GB
Data Space Available: 106.3GB
Metadata Space Used: 18.88MB
Metadata Space Total: 2.147GB
Metadata Space Available: 2.129GB
Thin Pool Minimum Free Space: 10.74GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.149-RHEL7 (2018-07-20)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-957.21.3.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 6
Total Memory: 7.62GiB
Name: localhost.localdomain
ID: VHOE:ZSCS:C53H:W54Z:NWIS:L4YP:AYSC:7NQT:DMLC:JEEU:O7GZ:DX7O
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://f1361db2.m.daocloud.io/
Live Restore Enabled: false
Product License: Community Engine
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
20、docker version
显示 Docker 版本信息
实例操作如下:
[root@localhost ~]# docker version
Client:
Version: 18.09.6
API version: 1.39
Go version: go1.10.8
Git commit: 481bc77156
Built: Sat May 4 02:34:58 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.6
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 02:02:43 2019
OS/Arch: linux/amd64
Experimental: false