昨天我们知道了如何在服务器上部署自己的微服务的项目,但是对于很多命令,有小伙伴们就开始疑惑了,命令那么多,我到底应该怎么知道哪些是自己可能会用到的,而且也想了解一下这个命令都是用来做什么的,今天了不起就来给大家伙说说这个Docker 中的各项的命令。毕竟开发都离不开实战。
Docker 命令
docker build [image_name] :基于Dockerfile构建一个镜像。
这个我们都熟悉了,昨天了不起已经给大家说了,把我们的jar包构建成一个镜像,
docker run --name [container_name] [image_name] :运行一个容器并指定名称。
直接运行我们打的镜像,而且也可以指定端口号启动,比如如下的启动命令
docker run -p 18081:18081 xxx(test)
但是这种启动方式,则会直接打印启动日志,但是不会以后台的方式启动
-i 以交互模式运行容器,通常与 -t 同时使用
-t 启动容器后,为容器分配一个命令行,通常与 -i 同时使用
-v 目录映射,容器目录挂载到宿主机目录,格式: :<容器目录>
-d 守护进程,后台运行该容器
-p 指定端口映射,格式:主机(宿主)端口:容器端口
-P 随机端口映射,容器内部端口随机映射到主机的端口(49153起始 49153到65535)
-u 以什么用户身份创建容器
–name “nginx-lb” 容器名字
-m, --memory bytes 设置容器使用内存最大值
-h, --hostname string 指定容器的 host name
–dns 8.8.8.8 指定容器 dns 服务器
-e username=“ritchie” 设置环境变量
–restart Docker 重启后,容器是否自动重启
–privileged 容器内是否使用真正的 root 权限
docker images :列出本地所有的镜像。
这个命令很简单,就是列出,我们使用docker安装的各种镜像,比如昨天了不起打包成的一个小的微服务 test 的镜像还有mysql的镜像。
图片
docker ps :列出所有正在运行的容器。
图片
我们这时候就可以看到目前现在正在运行的镜像容器,一个是我们的 test 另外一个则是装好的 mysql而且还有他们的端口号
docker logs [container_id] :查看一个容器的日志。
图片
docker inspect [container_id] :显示一个容器的详细信息。
图片
这个时候,我们可以看到这个服务在容器内的IP,如果想要连接mysql的服务器的话,那么你就可能需要这个命令,因为这个mysql你是用 docker 部署并且启动的,不是么?
docker stop [container_id] :停止一个正在运行的容器。
图片
不错,我们先通过ps看到了我们的test 容器,这时候,我们需要去停止这个容器,这时候就是执行了stop的命令,直接停止了,然后再次查看的时候,已经只有 mysql 的存在了。
docker rmi [image_id] :删除一个镜像。
docker rm [container_id] :删除一个容器。
这两个命令也是我们在部署的时候会经常用到的,因为我们在在做了新的需求之后,就肯定需要部署新的服务包,这个时候,就需要重新打包镜像了,删除容器和删除镜像都需要使用到了。
docker network ls :列出所有网络。
图片
其实上述内容,都是我们在部署微服务的时候最有用的,其他的都是属于了解的了,了不起也来给大家列出这个内容大家有兴趣的可以了解一下了。
扩展内容
docker run [image_name] :运行一个容器。
docker ps :列出所有正在运行的容器。
docker images :列出本地所有的镜像。
docker pull [image_name] :从仓库下载一个镜像。
docker push [image_name] :将一个镜像推送到仓库。
docker build [image_name] :基于Dockerfile构建一个镜像。
docker stop [container_id] :停止一个正在运行的容器。
docker restart [container_id] :重启一个容器。
docker rm [container_id] :删除一个容器。
docker rmi [image_id] :删除一个镜像。
docker logs [container_id] :查看一个容器的日志。
docker inspect [container_id] :显示一个容器的详细信息。
docker exec [container_id] [command] :在运行的容器中执行命令。
docker cp [container_id:/path/to/file] [local_file_path] :从容器中复制文件到本地。
docker network ls :列出所有网络。
docker network create [network_name] :创建一个新的网络。
docker network connect [container_id] [network_name] :将容器连接到一个网络。
docker network disconnect [container_id] [network_name] :将容器从一个网络中断开连接。
docker port [container_id] :查看容器的端口映射。
docker run --name [container_name] [image_name] :运行一个容器并指定名称。
docker run -p [host_port]:[container_port] [image_name] :将主机端口映射到容器端口运行一个容器。
docker run -it [image_name] :以交互模式运行一个容器。
docker run -d [image_name] :以后台模式运行一个容器。
docker stats [container_id] :查看一个容器的资源使用情况。
docker top [container_id] :查看一个容器中运行的进程。
docker commit [container_id] [new_image_name] :创建一个新的镜像并提交更改。
docker save [image_name] > [file.tar] :将镜像保存为tar文件。
docker load < [file.tar] :从tar文件中加载镜像。
docker tag [image_name] [new_image_name] :创建一个新的镜像标签。
docker login :登录到Docker Hub。
docker logout :退出Docker Hub。
docker volume ls :列出所有存储卷。
docker volume create [volume_name] :创建一个存储卷。
docker volume rm [volume_name] :删除一个存储卷。
docker run --mount source=[volume_name],target=[container_path] [image_name] :挂载一个存储卷到容器。
docker system prune :删除未使用的数据(如未使用的镜像、容器等)。
docker swarm init :初始化Swarm mode。
docker service ls :列出所有服务。
docker service create [service_name] :创建一个新的服务。
docker service rm [service_name] :删除一个服务。