首页>软件资讯>常见问题

常见问题

docker常用命令

发布时间:2024-06-19 09:49:35人气:71

Docker 是一个用于开发、交付和运行应用程序的平台,且提供了一系列命令来管理镜像、容器、网络和存储卷等资源。

docker生命周期相关命令

这些命令用于管理容器的生命周期,包括创建、启动、停止、删除等。

docker run

创建并启动一个容器。

[root@lutixia ~]# docker run -d --name mynginx nginx

ef5dc799dc80574836c550118fcfcb804af342cc4dbf9fa76599155c3095c6f3

[root@lutixia ~]#

docker stop

停止一个运行中的容器。


[root@lutixia ~]# docker stop mynginx

mynginx

[root@lutixia ~]#

docker start

启动一个已经存在的容器。


[root@lutixia ~]# docker start mynginx

mynginx

[root@lutixia ~]#

docker restart

重启一个运行中的容器。


docker restart mynginx

docker rm

删除一个已停止的容器。


[root@lutixia ~]# docker stop mynginx

mynginx

[root@lutixia ~]#

[root@lutixia ~]# docker rm mynginx

mynginx

docker ps

列出当前所有运行的容器。


[root@lutixia ~]# docker ps

CONTAINER ID   IMAGE                  COMMAND                   CREATED        STATUS             PORTS                       NAMES

e1ce0b642a10   kindest/node:v1.27.3   "/usr/local/bin/entr…"   9 months ago   Up About an hour   127.0.0.1:42103->6443/tcp   kind-control-plane

be4ff1a2dce3   kindest/node:v1.27.3   "/usr/local/bin/entr…"   9 months ago   Up About an hour                               kind-worker

bce1a252b960   kindest/node:v1.27.3   "/usr/local/bin/entr…"   9 months ago   Up About an hour                               kind-worker2

列出所有容器(包括停止的)。


docker ps -a

docker镜像相关命令

这些命令用于管理 Docker 镜像,包括构建、拉取、删除等。


docker build

从 Dockerfile 构建一个新的镜像。


docker build -t myimage:latest .

docker pull

从 Docker Hub 或其他仓库拉取一个镜像。


docker pull nginx

docker push

将本地镜像推送到远程仓库(需要先登录)。


docker push myimage:latest

docker images

列出本地所有镜像。


[root@lutixia ~]# docker images

REPOSITORY     TAG       IMAGE ID       CREATED         SIZE

kindest/node   <none>    6e360fda99b5   12 months ago   850MB

nginx          latest    eeb9db34b331   2 years ago     134MB

busybox        1.28      89a35e2ebb6b   6 years ago     1.28MB

docker rmi

删除一个本地镜像。


[root@lutixia ~]# docker rmi busybox:1.28

Untagged: busybox:1.28

Untagged: busybox@sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47

Deleted: sha256:89a35e2ebb6b938201966889b5e8c85b931db6432c5643966116cd1c28bf45cd

Deleted: sha256:f4fc038e206e02964abd937c8071a34f1838e0693d2f38657b7d96528bd6dbaa

[root@lutixia ~]#

docker容器相关命令

这些命令用于操作和管理容器内的进程和文件系统。


docker exec

在一个运行中的容器中执行命令。


[root@lutixia ~]# docker run -d --name mynginx nginx

5408a427e54782c451b2e06011633ff103b155b5dac98ecf46bef6c71292b81b

[root@lutixia ~]#

[root@lutixia ~]# docker exec -it mynginx /bin/bash

root@5408a427e547:/#

docker logs

查看容器的日志。


[root@lutixia ~]# docker logs mynginx

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration

/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/

/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh

10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf

10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf

docker inspect

查看容器的详细信息。


[root@lutixia ~]# docker inspect mynginx

[

{

    "Id": "5408a427e54782c451b2e06011633ff103b155b5dac98ecf46bef6c71292b81b",

    "Created": "2024-06-15T06:56:38.001113943Z",

    "Path": "/docker-entrypoint.sh",

    "Args": [

        "nginx",

        "-g",

        "daemon off;"

    ],

    ...

docker cp

在本地文件系统和容器之间复制文件。


[root@lutixia ~]# docker cp mynginx:/etc/nginx/nginx.conf /tmp/

Successfully copied 2.56kB to /tmp/

[root@lutixia ~]#

docker网络网络命令

这些命令用于管理 Docker 的网络,包括创建、查看和删除网络等。


docker network ls

列出所有 Docker 网络。


[root@lutixia ~]# docker network ls

NETWORK ID     NAME      DRIVER    SCOPE

9e5b87fe35d0   bridge    bridge    local

ea1cedb0b9bd   host      host      local

218aeeb09820   kind      bridge    local

c16474a0eb15   none      null      local

docker network create

创建一个新的网络。


[root@lutixia ~]# docker network create mynetwork

c39babe9b3f988d64e4e2766c84d2e855a4e031d616ee2ac2b791ee8f470218d

docker network inspect

查看网络的详细信息。


[root@lutixia ~]# docker inspect network mynetwork

[

{

    "Name": "mynetwork",

    "Id":    "c39babe9b3f988d64e4e2766c84d2e855a4e031d616ee2ac2b791ee8f470218d",

    "Created": "2024-06-15T15:01:21.931487302+08:00",

    "Scope": "local",

    "Driver": "bridge",

    "EnableIPv6": false,   

    ...

docker network connect

将一个容器连接到一个网络。


[root@lutixia ~]# docker network connect mynetwork mynginx

[root@lutixia ~]# docker inspect network mynetwork  | grep -iC 2 containers

       },

    "ConfigOnly": false,

    "Containers": {

        "5408a427e54782c451b2e06011633ff103b155b5dac98ecf46bef6c71292b81b": {

            "Name": "mynginx",

docker network disconnect

将一个容器从一个网络断开。


[root@lutixia ~]# docker network  disconnect mynetwork mynginx

[root@lutixia ~]#

[root@lutixia ~]# docker inspect network mynetwork  | grep -iC 2 Containers

    },

    "ConfigOnly": false,

    "Containers": {},

docker存储卷相关命令

这些命令用于管理 Docker 的存储卷,包括创建、挂载和删除卷等。


docker volume ls

列出所有存储卷。


docker volume ls

docker volume create

创建一个新的存储卷。


docker volume create myvolume

docker volume inspect

查看存储卷的详细信息。


docker volume inspect myvolume

docker volume rm

删除一个存储卷。


docker volume rm myvolume

挂载存储卷到容器

在创建容器时,将存储卷挂载到容器中。


docker run -d --name mynginx -v myvolume:/data nginx

这些命令涵盖了 Docker 的主要操作,能够帮助你高效地管理镜像、容器、网络和存储卷。



上一条:Docker启动与停止

下一条:Docker详解