Docker常用命令手册

Ubuntu Docker安装

使用官方安装脚本自动安装

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或可以使用国内daocloud一键安装命令:

$ curl -sSL https://get.daocloud.io/docker | sh

Docker启动与停止

  • 启动docker

sudo service docker start
  • 停止docker

sudo service docker stop
  • 重启docker

sudo service docker restart
  • 启动docker,并设置为开机自启动,测试

# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker
# 测试
docker run hello-world

镜像操作

  • 拉取镜像到本地

docker pull 镜像名称:版本
  • 查找镜像

docker search httpd
  • 查看全部本地镜像

docker images
  • 删除本地镜像

docker image rm 镜像id
或
docker rmi 镜像id
  • 设置镜像标签

docker tag 镜像id 新镜像名称:版本

容器操作

  • 启动容器

docker run -it ubuntu /bin/bash

常用参数

docker run -d -p  宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[tag]
# -i:交互式操作
# -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
# -d: 代表后台运行容器
# -p: 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
# --name 容器名称: 指定容器的名称
# -v: 映射主机文件到容器目录,docker run -v /local:/doc ubuntu
  • 创建容器映射端口

docker container run -p : --name  

其中,是主机上要映射的端口号,是容器内部要映射的端口号,是要添加端口映射的Docker容器的名称(可以使用docker container ls命令来查看容器名称),是要运行的Docker镜像名称。

例如,要将已经运行的名为my_container的容器内部的80端口映射到主机上的8080端口,可以使用以下命令:

docker container run -p 8080:80 --name my_container nginx

这将在现有的my_container容器上添加一个端口映射,并将容器内部的80端口映射到主机上的8080端口。现在,可以通过访问http://localhost:8080来访问Nginx容器中运行的Web服务器。

  • 已有容器映射端口

您也可以使用 docker container update 命令来更新已经存在的容器的端口映射,以映射多个端口,格式为 --publish hostPort:containerPort。

例如,要将容器的端口 8080 映射到主机的端口 80,同时将容器的端口 3000 映射到主机的端口 3001,可以使用以下命令:

docker container update --publish 80:8080 --publish 3001:3000 my_container

这将更新名为 my_container 的容器,将其端口 8080 映射到主机的端口 80,同时将容器的端口 3000 映射到主机的端口 3001。

  • 查看正在运行的容器

docker ps [OPTIONS]
# OPTIONS说明:
# -a: 代表查看全部的容器,包括没有运行
# -q: 只查看容器的标识
# -f: 根据条件过滤显示的内容
# --format: 指定返回值的模板文件
# -l: 显示最近创建的容器
# -n: 列出最近创建的n个容器
# --no-trunc: 不截断输出
# -s: 显示总的文件大小
  • 容器自启动

docker run -d --restart=always --name 设置容器名 使用的镜像
(上面命令  --name后面两个参数根据实际情况自行修改)
 
# Docker 容器的重启策略如下:
 --restart具体参数值详细信息:
       no        // 默认策略,容器退出时不重启容器;
       on-failure    // 在容器非正常退出时(退出状态非0)才重新启动容器;
       on-failure:3    // 在容器非正常退出时重启容器,最多重启3次;
       always      // 无论退出状态是如何,都重启容器;
       unless-stopped  // 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。
  • 查看容器日志

docker logs -f 容器id
# -f: 可以滚动查看日志的最后几行
  • 给容器设置IP

在Docker中,可以使用--ip选项为容器分配一个静态IP地址。以下是在Docker中为容器分配静态IP地址的步骤:

  1. 使用docker network create命令创建一个用户自定义网络:

docker network create --subnet=172.20.0.0/16 my_network

在此命令中,我们使用--subnet选项指定网络的子网,并将其命名为my_network

  1. 使用docker run命令启动容器,并将其连接到my_network网络:

docker run --network my_network --ip 172.20.0.2 --name my_container-d my_image

在此命令中,我们使用--ip选项为容器分配IP地址,并将其连接到my_network网络。请注意,IP地址必须在子网范围内。

通过这种方式,我们为Docker容器分配了一个静态IP地址,使其可以在容器之间进行通信。

  • 修改已有容器

docker update --restart=always 容器ID(或者容器名)
(容器ID或者容器名根据实际情况修改)
  • 修改容器名称

docker rename my_container new_container_name
#将将容器的名称从my_container更改为new_container_name
  • 进入容器内部

docker exec -it 容器id bash
  • 启动容器

docker start 容器id
  • 设置docker开启自启动

要让Docker在启动时自动运行指定的容器,可以使用--restart选项。此选项将在Docker守护程序启动时自动启动指定的容器。

以下是使用--restart选项的示例:

docker run --name my_container --restart=always my_image

在此示例中,我们使用--restart选项将容器命名为my_container,并将其设置为始终在Docker守护程序启动时自动启动。请注意,--restart选项的值可以是alwayson-failureunless-stopped

如果要将现有的容器设置为始终在Docker守护程序启动时自动启动,可以使用以下命令:

docker update --restart=always my_container

在此命令中,我们使用docker update命令将现有的my_container容器设置为始终在Docker守护程序启动时自动启动。

  • 停止容器

# 停止指定的容器
docker stop 容器id
# 停止全部容器
docker stop $(docker ps -qa)
  • 删除容器

# 删除指定容器
docker rm 镜像id
# 删除全部容器
docker rm $(docker ps -qa)
  • 容器导出镜像

在将Docker容器导出为镜像时,可以使用docker commit命令将容器转换为新的镜像。例如,以下命令将名为my_container的容器转换为新的名为my_image的镜像:

docker commit my_container my_image

这将使用my_container容器的当前状态创建一个新的Docker镜像my_image。

如果您想在本地使用新的Docker镜像,可以在docker run命令中指定该镜像的名称,就像运行任何其他Docker镜像一样。例如,以下命令将使用新的my_image镜像创建一个新的Docker容器:

docker run --name my_new_container my_image

注意,如果要在其他机器上使用该镜像,您需要将该镜像推送到Docker仓库中,以便其他人可以访问该镜像。使用docker push命令可以将镜像推送到您的Docker仓库中。

  • U盘拷贝镜像

要将 Docker 镜像拷贝到 U 盘上,您可以使用 docker save 命令将镜像保存为 tar 文件,然后将该文件拷贝到 U 盘上。

以下是将 Docker 镜像拷贝到 U 盘的步骤:

找到要拷贝的 Docker 镜像的 ID 或名称。您可以使用 docker image ls 命令列出所有存在的镜像,并找到要拷贝的镜像的 ID 或名称。

使用 docker save 命令将镜像保存为 tar 文件。例如,要将名为 my_image 的镜像保存为 my_image.tar 文件,可以执行以下命令:

docker save my_image > my_image.tar

这将创建一个名为 my_image.tar 的 tar 文件,其中包含名为 my_image 的镜像的所有层。

将 my_image.tar 文件拷贝到 U 盘上。

在另一个计算机上,将 my_image.tar 文件拷贝到该计算机上的任意目录中,并使用 docker load 命令将其加载为 Docker 镜像。例如,要在另一个计算机上加载 my_image.tar 文件,可以执行以下命令:

docker load < my_image.tar

这将加载 my_image.tar 文件中的镜像,并将其保存在本地 Docker 镜像存储库中。您可以使用 docker image ls 命令验证是否已成功加载该镜像。

请注意,如果要将 Docker 镜像拷贝到不同的操作系统或架构中,则需要在目标计算机上重新构建该镜像,以便使用适当的基础映像和软件包。

你可能感兴趣的:(docker,docker,运维,linux)