http://www.cnblogs.com/panjunbai/p/7124179.html
使用docker create [image-name] 创建一个容器
创建一个nginx镜像的容器,由于没有指定各项参数,容器实用默认参数,创建后并不会启动,并将容器的ID输出到终端,如果本地没有镜像,将从网络下载镜像。[root@docker ~]# docker create nginx 63dd9de3c7280959175223c32253623ac0c0ec7680f1051391b62adc126d464f
使用docker run [image-name] 创建一个容器并运行该容器
创建一个nginx镜像的容器,由于没有指定各项参数,容器实用默认参数,创建并启动运行,并将容器的ID输出到终端,如果本地没有镜像,将从网络下载镜像。但是请使用-d 参数,让容器运行在后台,不然该终端将会被占用无法使用。[root@docker ~]# docker run -d nginx 593d0b66c5b44b2b810076469872d1032376116e2352846aa60a190f7365d914
实用docker ps -a 命令查看当前docker创建的容器,并显示运行状态
[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 63dd9de3c728 nginx "nginx -g 'daemon ..." 3 minutes ago Created gifted_minsky
启动一个创建好的或者被停止的容器
使用docker start [container id] 启动容器[root@docker ~]# docker start 63dd9de3c728 63dd9de3c728 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 63dd9de3c728 nginx "nginx -g 'daemon ..." 7 minutes ago Up 4 seconds 80/tcp gifted_minsky
停止一个正在运行的容器
使用docker stop [container id] 启动容器[root@docker ~]# docker stop 63dd9de3c728 63dd9de3c728 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 63dd9de3c728 nginx "nginx -g 'daemon ..." 9 minutes ago Exited (0) 4 seconds ago gifted_minsky
使用docker rm 删除一个容器
如果被删除的容器处于运行状态,将无法删除[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 63dd9de3c728 nginx "nginx -g 'daemon ..." 11 minutes ago Up 2 seconds 80/tcp gifted_minsky [root@docker ~]# docker rm 63dd9de3c728 Error response from daemon: You cannot remove a running container 63dd9de3c7280959175223c32253623ac0c0ec7680f1051391b62adc126d464f. Stop the container before attempting removal or force remove
停止要删除后的容器然后在删除容器
[root@docker ~]# docker stop 63dd9de3c728 63dd9de3c728 [root@docker ~]# docker rm 63dd9de3c728 63dd9de3c728 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
创建容器的参数
OPTIONS | 说明 |
---|---|
-a stdin | 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 |
-d | 后台运行容器,并返回容器ID |
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
--name="nginx-lb" | 为容器指定一个名称 |
--dns 8.8.8.8 | 指定容器使用的DNS服务器,默认和宿主一致 |
--dns-search example.com | 指定容器DNS搜索域名,默认和宿主一致 |
-h "mars" | 指定容器的hostname |
-e username="ritchie" | 设置环境变量 |
--env-file=[] | 从指定文件读入环境变量 |
--cpuset="0-2" or --cpuset="0,1,2" | 绑定容器到指定CPU运行 |
-m | 设置容器使用内存最大值 |
--net="bridge" | 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型 |
--link=[] | 添加链接到另一个容器 |
--expose=[] | 开放一个端口或一组端口 |
-it
-it 参数一般连用,在docker run 启动一个容器后提供一个容器的终端,如果容器中没开启shell进程,也无法对容器进行交互[root@docker ~]# docker run -it centos [root@a8c4541d52fc /]#
退出容器请使用CTRL + D ;CTRL + C 只会发送给容器的shell,不会退出容器
--name="container name"
--name 将会为容器指定一个名称,没有这个参数,容器的名称将由系统分配[root@docker ~]# docker create --name="centos-1" centos eb96e184b3840979de8c9e66adda190c8465fc73dfae65418d8bc0c9c62f491c [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES eb96e184b384 centos "/bin/bash" 25 seconds ago Created centos-1
-p
-p 参数将一个docker主机的端口映射到容器中,有如下几种格式:ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | [range hostPort]:containerPort |[range hostPort]:[range containerPort]
[root@docker ~]# docker run -it -d -p 192.168.0.141:10000:80 --name=c-1 centos 37a154d52dc218499e535e2264753006dc29e40e7d33f35be420d38b3bfb4847 [root@docker ~]# docker run -it -d -p 192.168.0.141::80 --name=n-1 centos 1acf8de94a8e485a19be3e5be0735f4e88807cee8c0f466d18eb1bf2c633ab44 [root@docker ~]# docker run -it -d -p 10001:80 --name=a-1 centos bbb33f76794dd059a96872c1ff2add28719df15b326fb87864284d10d5e9d470 [root@docker ~]# docker run -it -d -p 10010-10020:80-90 --name=q-1 centos 3877df081cea0903ba91910bf4ee5150cac55d337435f66075c237956350bd42 [root@docker ~]# docker run -it -d -p 10030-10040:80 --name=w-1 centos 8296c4196bfaae55d7d7ec145086bf31b257aea733567501a61d57dcd553a320 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8296c4196bfa centos "/bin/bash" 3 seconds ago Up 2 seconds 0.0.0.0:10031->80/tcp w-1 3877df081cea centos "/bin/bash" 11 seconds ago Up 10 seconds 0.0.0.0:10010->80/tcp, 0.0.0.0:10011->81/tcp, 0.0.0.0:10012->82/tcp, 0.0.0.0:10013->83/tcp, 0.0.0.0:10014->84/tcp, 0.0.0.0:10015->85/tcp, 0.0.0.0:10016->86/tcp, 0.0.0.0:10017->87/tcp, 0.0.0.0:10018->88/tcp, 0.0.0.0:10019->89/tcp, 0.0.0.0:10020->90/tcp q-1 bbb33f76794d centos "/bin/bash" 19 seconds ago Up 18 seconds 0.0.0.0:10001->80/tcp a-1 1acf8de94a8e centos "/bin/bash" 27 seconds ago Up 26 seconds 192.168.0.141:32769->80/tcp n-1 37a154d52dc2 centos "/bin/bash" 39 seconds ago Up 39 seconds 192.168.0.141:10000->80/tcp c-1
-v 挂载数据卷
将本地文件/root/pan1/pan.txt 挂载到容器/etc/resolv.conf[root@docker ~]# docker run -d --name web-1 -v /root/pan1/pan.txt:/etc/resolv.conf nginx d01e19d1c6284a7a5dfc344c7f4ee27da5c099d7ebd95048efea3e6c7b038d55
将本地目录/root/pan1挂载到容器/etc/pan1 下
[root@docker ~]# docker run -d --name web-2 -v /root/pan1:/etc/pan1 nginx 52a1a7df2964e62a11cf53778e3d461e21090857b03d277db36509c94b3be660
创建一个数据卷,数据卷不会随着容器被删除而被删除
[root@docker ~]# docker create -v /shiyanloudata --name shiyan -it centos 46fa93471dda1814781ba57727e12e7678ca243b281ed928b64752ab6b2f6031 [root@docker ~]# docker volume ls DRIVER VOLUME NAME local f8bb990062eebe25d7fdfaa76db5130d89ebacd50a18e25992e83e97ba862123
数据卷可以被多个容器共享,容器挂载其他容器的数据卷
[root@docker ~]# docker run --volumes-from shiyan --name web12345 -d nginx 8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103
查看容器的信息
docker inspect [OPTIONS] NAME|ID [NAME|ID...][root@docker ~]# docker inspect web12345 [ { "Id": "8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103", "Created": "2017-07-05T15:53:39.588794033Z", "Path": "nginx", "Args": [ "-g", "daemon off;" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 11693, "ExitCode": 0, "Error": "", "StartedAt": "2017-07-05T15:53:39.755359815Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:c246cd3dd41d35f9deda43609cdeaa9aaf04d3658f9c5e38aad25c4ea5efee10", "ResolvConfPath": "/var/lib/docker/containers/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103/resolv.conf", "HostnamePath": "/var/lib/docker/containers/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103/hostname", "HostsPath": "/var/lib/docker/containers/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103/hosts", "LogPath": "/var/lib/docker/containers/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103-json.log", "Name": "/web12345", "RestartCount": 0, "Driver": "overlay", "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": [ "shiyan" ], "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": [], "DeviceCgroupRules": null, "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": { "Data": { "LowerDir": "/var/lib/docker/overlay/ff7668f4f80e6c01e2d669be8303b33191da439384e3212eb4c6dde337897e5d/root", "MergedDir": "/var/lib/docker/overlay/f37762cd46028d515d9076e386f725a0d28ced80f16b7fc6983b7e7bcf57d85c/merged", "UpperDir": "/var/lib/docker/overlay/f37762cd46028d515d9076e386f725a0d28ced80f16b7fc6983b7e7bcf57d85c/upper", "WorkDir": "/var/lib/docker/overlay/f37762cd46028d515d9076e386f725a0d28ced80f16b7fc6983b7e7bcf57d85c/work" }, "Name": "overlay" }, "Mounts": [ { "Name": "07a47233da2320118f5fd04621bede68f178b460bf045c72b602c0f58881620e", "Source": "/var/lib/docker/volumes/07a47233da2320118f5fd04621bede68f178b460bf045c72b602c0f58881620e/_data", "Destination": "/shiyan", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ], "Config": { "Hostname": "8b6cb7beed18", "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.13.1-1~stretch", "NJS_VERSION=1.13.1.0.1.10-1~stretch" ], "Cmd": [ "nginx", "-g", "daemon off;" ], "ArgsEscaped": true, "Image": "nginx", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": {}, "StopSignal": "SIGTERM" }, "NetworkSettings": { "Bridge": "", "SandboxID": "9f43f43c72567aaad066ba824cf33a5349c95a5f99b5c771c558fedcdbe396f4", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "80/tcp": null }, "SandboxKey": "/var/run/docker/netns/9f43f43c7256", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "1c1efb2dc8b892d45dbb5a45ca1a1b7477f61fc76c7ed58f3fc71207e36fef2d", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.9", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:09", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "6536d99d4f08428535db0de618aa15b0ee2663c50b197ec4dca77b9a1210f9e4", "EndpointID": "1c1efb2dc8b892d45dbb5a45ca1a1b7477f61fc76c7ed58f3fc71207e36fef2d", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.9", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:09" } } } } ]
查看指定的信息使用-f参数:
[root@docker ~]# docker inspect -f {{.LogPath}} web12345 /var/lib/docker/containers/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103/8b6cb7beed18e2070fea14b00db89c7b1b7491ed40f1850cef9e5e83c9859103-json.log [root@docker ~]# docker inspect -f {{.Config.Image}} web12345 nginx
参考资料:https://docs.docker.com/engine/reference/commandline/inspect/#examples
参考文档
相关文章推荐
- Docker 从入门到放弃(三)之Docker环境
- Docker 从入门到放弃(四)之Docker本地仓库
- Docker 从入门到放弃(五)之Docker镜像管理
- Docker 从入门到放弃(二)容器使用
- Docker 从入门到放弃(一)安装
- Docker 从入门到放弃(三)镜像使用
- Docker 从入门到放弃(一)
- Docker 从入门到放弃(二)之Spring Boot
- docker之旅,从入门到放弃
- 21天Python从入门到放弃(1)
- Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法
- 《Java从入门到放弃》框架入门篇:springMVC数据校验
- Python爬虫从入门到放弃(十七)之 Scrapy框架中Download Middleware用法
- 从0开始了解Docker入门(小结)
- Docker Compose入门示例
- [Android-ARCore开发]ARCore从入门到放弃1-Demo上手
- 只要一小时,零基础入门 Docker
- 《Java从入门到放弃》JavaSE入门篇:单元测试
- shell从入门到放弃(下)
- 《Java从入门到放弃》JavaSE入门篇:文件操作