docker常用命令整理
docker常用命令
1、docker版本信息
[root@VM_0_4_centos ~]# docker version
2、docker 系统信息
[root@VM_0_4_centos ~]# docker info
3、搜索镜像
[root@VM_0_4_centos ~]# docker search mysql
3-1、搜索结果显示多少条
[root@VM_0_4_centos ~]# docker search mysql -f --limit=1
3-2、显示stars大于3000的结果
[root@VM_0_4_centos ~]# docker search mysql --filter stars=3000
4、拉取镜像 默认latest版本
[root@VM_0_4_centos ~]# docker pull mysql
等同于
[root@VM_0_4_centos ~]# docker pull docker.io/library/mysql:latest
4-1、拉取指定版本镜像
[root@VM_0_4_centos ~]# docker pull mysql:5.7
5、显示所有镜像信息
[root@VM_0_4_centos ~]# docker images
5-1、显示所有镜像id
[root@VM_0_4_centos ~]# docker images -aq
6、删除镜像
[root@VM_0_4_centos ~]# docker rmi mysql
7、启动容器 -it交互模式 -d后台运行 --name 别名
[root@VM_0_4_centos ~]# docker run -it -d --name centos01 centos
8、查看运行中的容器
[root@VM_0_4_centos ~]# docker ps
9、停止运行容器
[root@VM_0_4_centos ~]# docker stop e84efd1d263d
10、启动容器
[root@VM_0_4_centos ~]# docker start e84efd1d263d
11、重启容器
[root@VM_0_4_centos ~]# docker restart e84efd1d263d
12、删除容器
[root@VM_0_4_centos ~]# docker rm e84efd1d263d
13、查看容器详细信息
[root@VM_0_4_centos ~]# docker inspect 0dffe3c508e4
14、查看容器内的线程
[root@VM_0_4_centos ~]# docker top 0dffe3c508e4
15、docker容器实时状态
[root@VM_0_4_centos ~]# docker stats
16、进入容器
[root@VM_0_4_centos ~]# docker exec -it b7500f6b909e /bin/bash
17、容器内向外拷贝文件 【容器是否启动均可拷贝】
[root@VM_0_4_centos ~]# docker cp b7500f6b909e:/test.java /disk/docker
18、查看日志
[root@VM_0_4_centos ~]# docker logs -f --tail=100 order-center
18-1、加上时间戳 查看日志
[root@VM_0_4_centos ~]# docker logs -ft --tail=100 order-center
19、帮助文档
[root@VM_0_4_centos ~]# docker --help
19-1、查看命令帮主文档
[root@VM_0_4_centos ~]# docker pull --help
20、查看挂载卷信息
[root@VM_0_4_centos ~]# docker volume ls
21、提交镜像
[root@VM_0_4_centos ~]# docker commit -m="信息" -a="作者" 容器id 名称:版本
22、卷挂载
[root@VM_0_4_centos ~]# docker run -it -d --name -v /home:/home centos01 centos 指定目录挂载
[root@VM_0_4_centos ~]# docker run -it -d --name -v centosHome:/home centos01 centos 具名挂载
[root@VM_0_4_centos ~]# docker run -it -d --name -v /home centos01 centos 匿名挂载
DockerFile文件挂载 [volume["home01","home02"]] 匿名挂载
23、创建网络
查看帮助文档
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker network create --help
Usage: docker network create [OPTIONS] NETWORK
Create a network
Options:
--attachable Enable manual container attachment
--aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
--config-from string The network from which to copy the configuration
--config-only Create a configuration only network
-d, --driver string Driver to manage the Network (default "bridge")
--gateway strings IPv4 or IPv6 Gateway for the master subnet
--ingress Create swarm routing-mesh network
--internal Restrict external access to the network
--ip-range strings Allocate container ip from a sub-range
--ipam-driver string IP Address Management Driver (default "default")
--ipam-opt map Set IPAM driver specific options (default map[])
--ipv6 Enable IPv6 networking
--label list Set metadata on a network
-o, --opt map Set driver specific options (default map[])
--scope string Control the network's scope
--subnet strings Subnet in CIDR format that represents a network segment
创建自定义网络mynetwork
优点修复了一些docker0默认网络中的问题
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 mynetwork
同一网络下可以根据名称进行访问。
例如:
ip | 服务名称 | 网络 |
192.168.0.2 | tomcat03 | mynetwork |
172.17.0.4 | tomcat02 | docker0(docker默认网络) |
172.17.0.3 | tomcat01 | docker0(docker默认网络) |
192.168.0.3 | tomcat04 | mynetwork |
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker exec -it c3a251dff9fd ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.115 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.077 ms
--- 172.17.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.075/0.089/0.115/0.018 ms
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker exec -it dcc3f9a4a836 ping tomcat03
PING tomcat03 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=2 ttl=64 time=0.088 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=3 ttl=64 time=0.070 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=4 ttl=64 time=0.099 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=5 ttl=64 time=0.073 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=6 ttl=64 time=0.086 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=7 ttl=64 time=0.088 ms
64 bytes from tomcat03.mynetwork (192.168.0.2): icmp_seq=8 ttl=64 time=0.071 ms
--- tomcat03 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7000ms
rtt min/avg/max/mdev = 0.060/0.079/0.099/0.012 ms
默认docker0与自定义网络均可以使用ip ping通自己网络内的容器
但是docker0无法使用名称,自定义网络可以实现。这样实现了高可用。建议使用自定义网络。
除该方法外还可以使用 --link实现名称访问,是通过修改容器内host文件实现。(不建议使用)
24、提交镜像
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker commit -a="********<********@qq.com>" -m="tomcat追加ping命令" dcc3f9a4a836 tomcat00:1.0
可以将自己修改后的容器,发布成镜像
docker images进行查看发布的镜像
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker images
25、修改发布镜像版本
查看帮助文档
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker tag --help
修改发布镜像版本:会重新生成一个镜像
[root@iZuf6gnxqtsewyb2kvgb0mZ nginx]# docker tag 080019e4f313 mytomcat:1.0
--------------------后续会不断更新