menu 我的书签 Docker命令速查表
文章开始
文章结尾

1、配置镜像加速源

拉取镜像慢,配置加载镜像地址:

创建一个或修改 /etc/docker/daemon.json 文件(如果不存在则创建):


vim /etc/docker/daemon.json

并添加或修改registry-mirrors字段,例如:


{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://docker.chenby.cn",
        "https://dockerpull.com",
        "https://dockerhub.jobcher.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub.uuuadc.top",
        "https://mirror.baidubce.com",
        "https://mirror.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hus-mirror.c.163.com",
        "https://dockerhub.azk8s.cn",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ]
}

或者


{
    "registry-mirrors": [
        "https://hub.uuuadc.top",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn"
    ]
}

或者


{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.1panel.live"
    ]
}

配置镜像加速源:

保存文件并退出编辑器。

重新加载配置文件并重启Docker服务以使配置生效:


sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置:

重启Docker服务后,可以通过运行docker info命令来查看Docker的配置信息,确认Registry Mirrors部分是否已包含你设置的镜像加速器地址。

注意:镜像加速源可能会随时间而变化。

2、拉取镜像

此处以拉取 nginx 镜像为例:


docker pull nginx

3、首次启动镜像


docker run -d -p 8090:80 --name nginx-container nginx:latest

示例:


[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    5ef79149e0ec   10 days ago   188MB
[root@localhost ~]# docker run -d -p 8090:80 --name nginx-container nginx:latest
96a5d9d2505293a05e1d07640f308576856b60147393c0764078f4d3163f8214
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                   NAMES
96a5d9d25052   nginx:latest   "/docker-entrypoint.…"   19 seconds ago   Up 18 seconds   0.0.0.0:8090->80/tcp, :::8090->80/tcp   nginx-container
[root@localhost ~]#

参数说明:

查看日志:


docker logs 96a5d9d25052(容器的ID)

示例:


[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                   NAMES
96a5d9d25052   nginx:latest   "/docker-entrypoint.…"   19 seconds ago   Up 18 seconds   0.0.0.0:8090->80/tcp, :::8090->80/tcp   nginx-container
[root@localhost ~]# docker logs 96a5d9d25052

容器启动成功后我们通过浏览器来访问一下nginx服务:

可以发现,nginx运行成功了。

4、inspect命令

docker inspect 命令是 Docker 中的一个非常有用的命令,它允许你获取 Docker
对象的详细信息,包括容器(containers)、镜像(images)、网络(networks)、卷(volumes)和插件(plugins)等。当你需要深入了解
Docker 对象的配置和状态时,这个命令就非常有用了。
对于容器(containers),docker inspect 命令可以显示容器的配置和状态信息,如网络设置、环境变量、挂载的卷、启动命令等。

基本语法:


docker inspect [OPTIONS] NAME|ID [NAME|ID...]

示例:

查看单个容器的详细信息


[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED       STATUS          PORTS                                   NAMES
96a5d9d25052   nginx:latest   "/docker-entrypoint.…"   5 hours ago   Up 16 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp   nginx-container
[root@localhost ~]# docker inspect nginx-container

这里 nginx-container 是你想要查看的容器的名称或ID。

5、启动已存在容器


docker start <容器 ID/Name>
docker restart 容器id1 [容器id2] [...]  #重启

6、查看docker容器列表


docker ps  #查看正在运行的容器列表
docker ps –a #所有容器列表(包含存活和退出容器)

7、停止容器


docker stop <容器 ID/Name>

8、进入容器


docker exec -it 容器ID或容器别名称 /bin/bash

从这个容器退出,不会导致容器的停止,推荐大家使用

9、查看容器的某些进程PID


doker top name

10、删除容器


docker stop <container_id_or_name> #删除前先停止容器
docker rm <container_id_or_name>  #删除容器
docker rm $(docker ps -aq)  #一次性删除所有已经停止的容器

11、查看镜像列表


docker images

12、启动所有容器


docker start $(docker ps -a -q)

13、修改Docker容器内的文件

1)使用docker exec命令和文本编辑器

如果你只是想临时修改容器内的文件,并且容器内有可用的文本编辑器(如vi、nano等),你可以使用docker exec命令来启动一个交互式shell会话,并在这个会话中编辑文件。例如:


docker exec -it <container_id_or_name> bash  
# 然后,在bash会话中,你可以使用任何可用的编辑器来修改文件  
# 例如:vi /path/to/your/file  
# 修改完成后,使用:wq退出vi

2)使用docker cp命令

如果你想要从宿主机上直接修改文件,然后将其复制回容器内,可以使用docker cp命令。首先,从容器中将文件复制到宿主机:


docker cp <container_id_or_name>:/path/to/container/file /path/to/host/directory

然后,在宿主机上修改文件,修改完成后,再将文件复制回容器:


docker cp /path/to/host/directory/file <container_id_or_name>:/path/to/container/file

14、创建容器时指定IP

Docker创建容器时默认采用bridge网络,自动分配ip,不允许自己指定。

在实际部署中,我们需要指定容器ip,不允许其自动分配ip,尤其是搭建集群时,固定ip是必须的。

我们可以创建自己的bridge网络,例如:mynet,创建容器的时候指定网络为mynet并指定ip即可。

15、查看网络模式


docker network ls

16、创建一个新的bridge网络


docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.0.1 dockercompose

17、查看网络信息


docker network inspect dockercompose

18、创建容器并指定容器ip


docker run -it --name nginx-second --network=dockercompose --ip 172.19.0.6 nginx
# 验证是否固定
docker insepect 容器ID | grep "IpAddress"
"SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.19.0.6",

19、查看数据卷相关信息


docker inspect -f {{.Volumes}} 容器名