docker常用命令

发布时间 2023-04-17 10:20:22作者: 独孤的专注者

一:docker服务相关命令

# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
# 查看docker服务状态
systemctl status docker
# 设置开机启动docker服务
systemctl enable docker
# 查看docker概要信息
docker info
# 查看docker帮助文档
docker --help

二:docker镜像相关命令

# 查看镜像可以使用如下命令:
docker images
# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
也可以直接去官网搜索(http://hub.docker.com)

# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:
docker pull 镜像名称
# 拉取centos 7
docker pull centos:7

# 拉取centos 最后版本镜像
docker pull centos:latest
#在官网可以直接复制命令拉取

# 按照镜像id删除镜像,或者镜像名称:版本号
docker rmi 镜像ID|镜像的名称:版本号
# 删除所有镜像(谨慎操作)
docker rmi `docker images -q`

三:docker容器相关命令

- 查看正在运行容器: docker ps
- 查看所有容器: docker ps -a 
- 查看最后一次运行的容器: docker ps –l

#创建容器 docker run
-i: 表示运行容器

-t: 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端/bin/bash。

--name: 为创建的容器命名(名称必须唯一)。

-v: 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-d: 在run后面加上-d参数, 则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,并指定终端,创建后就会自动进去容器)。

-p: 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射。

#创建交互式容器  如果退出容器,则容器会变成停止状态
docker run -it --name=mycentos7 centos:7 /bin/bash

#创建守护式容器 创建守护容器并不会马上进入到容器里面,exit退出时,容器不会停止
docker exec -it mycentos2 /bin/bash

# 停止正在运行的容器: docker stop 容器名称|容器ID
docker stop mycentos2

# 启动已运行过的容器: docker start 容器名称|容器ID
docker start mycentos2

# 重启正在运行的容器: docker restart 容器名称|容器ID
docker restart mycentos2

#查看容器信息
# docker inspect 容器名称(容器ID)
docker inspect mycentos2

#删除容器 一般配合docker ps使用 
docker rm mycentos2
# 或者
docker rm 2095a22bee70

# 删除所有容器
docker rm `docker ps -a -q`

将linux宿主机中的文件拷贝到容器内可以使用命令:

# docker cp 需要拷贝的文件或目录 容器名称:容器目录

# 创建一个文件abc.txt 
touch abc.txt

# 复制 abc.txt 到 mycentos2 的容器的 / 目录下 
# 格式: docker cp 源文件  容器名称:路径
 

# 进入mycentos2容器 
docker exec -it mycentos2 /bin/bash 

# 查看容器 / 目录下文件
ll

将文件从容器内拷贝出来到linux宿主机使用命令:

# docker cp 容器名称:容器目录 需要拷贝的文件或目录

# 进入容器后创建文件aaa.txt
touch aaa.txt

# 退出容器
exit

# 在Linux宿主机器执行复制;将容器mycentos2的/aaa.txt文件复制到 宿主机器的/root目录下
#格式: docker cp 容器名称:文件路径  linux系统的路径

docker cp mycentos2:/aaa.txt /root

 容器目录挂载:

# 创建linux宿主机器要挂载的目录 
mkdir /usr/local/test 

# 创建并启动容器mycentos3
# 并挂载 linux中的/usr/local/test目录到容器的/usr/local/test
# 也就是在 linux中的/usr/local/test中操作相当于对容器相应目录操作 
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos3 centos:7

# 在linux宿主机下创建文件 
touch /usr/local/test/bbb.txt

# 进入容器 
docker exec -it mycentos3 /bin/bash