docker命令入门到精通这一篇就够了

本文详细介绍了Docker的基本命令,包括帮助命令、镜像命令、容器命令及其他常用命令。重点讲解了如何使用数据卷实现容器数据持久化,通过实战安装MySQL演示了数据卷的应用。还介绍了Dockerfile的使用,以及如何构建、运行和发布自己的镜像。此外,探讨了Docker网络,包括自定义网络、网络联通和容器间的通信。最后,展示了如何部署Redis集群及SpringBoot微服务的Docker化过程。
摘要由CSDN通过智能技术生成

Docker命令使用

帮助命令

docker version    # 显示docker的版本信息
docker info 	  # 显示docker系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令

帮助文档的地址

https://docs.docker.com/engine/reference/commandline/

镜像命令

docker images 查看使用本机上的镜像

[root@iZbp1cnxvv325atsz2k5xcZ ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
adminer      latest    015ac408c7d5   13 days ago   90.3MB

# 解释
REPOSITORY  镜像的仓库源
TAG			镜像的标签
IMAGE ID	镜像的id
CREATED		镜像的创建时间
SIZE		镜像的大小

# 可选项
 -a, --all            # 列出所有镜像
 -q, --quiet          # 只显示镜像的id

docker search 搜索镜像

docker search mysql

# 可选项,通过搜索来过滤
--filter=STARS=5000  #搜索出来的镜像就是STARS大于5000的
docker search mysql --filter=STARS=5000

docker pull 下载镜像

 #默认下载最新版本的mysql
docker pull mysql 

#指定镜像版本下载
docker pull mysql:5.7

docker rmi 删除镜像

# 删除指定的镜像
docker rmi -f 镜像id
# 删除多个的镜像
docker rmi -f 镜像id,镜像id
#删除全部镜像
docker rmi -f $(docker images -aq)

容器命令

说明:我们有了镜像才可以创建容器,linux下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
--name=”Name“ 容器名字 tomcat01,tomcat02,用来区分容器
-d 			  后台方式运行
-it  		  使用交互方式运行,进入容器查看内容
-p			  指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P 			  随机指定端口

# 测试,启动并进入容器
docker run -it centos /bin/bash

#从容器中退回主机
exit

列出所有运行的容器

# docker ps 命令
		# 列出当前正在运行的容器
-a 		# 列出当前正在运行的容器+带出历史运行的容器
-n=?(数量) 	# 显示最近创建的容器
-q 		# 只显示容器的编号
docker ps

退出容器

exit # 直接容器停止并退出
Ctrl +p +q # 容器不停止并退出

删除容器

docker rm 容器id					# 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq)	 # 删除所有的容器 
docker ps -a -q|xargs docker rm  # 删除所有的容器

启动和停止容器的操作

docker start 容器id      # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id      # 停止当前正在运行的容器
docker kill 容器id      # 强制停止当前容器

常用的其他命令

后台启动容器

# 命令 docker run -d 镜像名!
docker run -d mysql

# 问题dockers ps,发现 mysql 停止了

# 常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

docker logs -f -t --tail 容器,没有日志

# 自己编写一段shell脚本
docker run -d mysql /bin/sh -c "while true;do echo junge;sleep 1;done"

# docker ps

# 查看全部日志
# docker logs -tf 容器id
docker logs -tf 41132814d678

# 查看指定行数打印日志
# docker logs -tf --tail 10 容器id
docker logs -tf --tail 10 41132814d678

查看容器内部中的进程信息

# 命令 docker top 容器id
[root@iZbp1cnxvv325atsz2k5xcZ ~]# docker top 94c1e99dc77f

# 测试
[root@iZbp1cnxvv325atsz2k5xcZ ~]# docker top 94c1e99dc77f
UID         PID         PPID         C        STIME        TTY        TIME        CMD
polkitd     1758         1738         0       Jan30         ?        00:05:55    mysqld

查看镜像的元数据

# 命令 docker inspect 容器id
docker inspect 94c1e99dc77f

# 测试
[root@iZbp1cnxvv325atsz2k5xcZ ~]# docker inspect 94c1e99dc77f
[
    {
   
        "Id": "94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0",
        "Created": "2021-01-17T09:56:33.463912659Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mysqld"
        ],
        "State": {
   
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1758,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-01-30T13:45:07.128428191Z",
            "FinishedAt": "2021-01-30T13:41:17.036910334Z"
        },
        "Image": "sha256:102816b1ee7d6f5943c251647275f0d112f4617bb4ab3f7583206404b7834732",
        "ResolvConfPath": "/var/lib/docker/containers/94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0/hostname",
        "HostsPath": "/var/lib/docker/containers/94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0/hosts",
        "LogPath": "/var/lib/docker/containers/94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0/94c1e99dc77f59efcb2aee922d3944c2b2e745c5de51c7f4dbad33be86bdadf0-json.log",
        "Name": "/mysql",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
   
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
   
                "Type": "json-file",
                "Config": {
   }
            },
            "NetworkMode": "default",
            "PortBindings": {
   
                "3306/tcp": [
                    {
   
                        "HostIp": "",
                        "HostPort": "3306"
                    }
                ]
            },
            "RestartPolicy": {
   
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "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,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "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",
                &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值