Docker 服务常用命令
- 设置 Docker 服务自动启动
sudo systemctl enable docker.service
- 启动 Docker 服务
sudo systemctl start docker.service
- 关闭 Docker 服务
sudo systemctl stop docker.service
- 查看 Docker 服务状态
sudo systemctl status docker.service
Docker 镜像常用命令
- 搜索镜像:可使用 docker search 命令搜索存放在 Docker Hub 中的镜像,显示的信息包括:
属性 |
描述 |
NAME |
镜像仓库名称 |
DESCRIPTION |
镜像仓库描述 |
STARS |
镜像仓库收藏数 |
OFFICAL |
是否官方库 |
AUTOMATED |
是否自动构建的镜像仓库 |
docker search java
- 下载镜像:通过 docker pull 命令从 Docker Registry 上下载镜像
docker pull java
docker pull reg.itmuch.com/java:7 //指定下载镜像的标签以及 Docker Registry
- 列出镜像,显示的信息包括:
属性 |
描述 |
REPOSITORY |
镜像所属仓库名 |
TAG |
镜像标签,默认是 latest,表示最新 |
IMAGE ID |
镜像ID |
CREATED |
镜像创建时间 |
SIZE |
镜像大小 |
docker images
- 删除本地镜像
docker rmi hello-world #删除指定名称镜像
docker rmi -f $(docker images) #删除所有镜像
Docker 容器常用命令
- 通过 docker run 新建并启动容器,还可以附加一些常用选项
- -d:表示后台运行
- -P:随机端口映射
- -v:指定挂载目录
- -it:创建一个交互式的容器
- -p:指定端口映射,ip 表示主机 IP、hostPort 表示宿主主机端口、containerPort 表示容器端口,有以下四种格式:
- ip:hostPort:containerPort
- ip:containerPort
- hostPort:containerPort
- containerPort
- -network:指定网络模式,该选项有以下可选参数
- -network=bridge:默认选项,表示连接到默认的网桥
- -network=host:容器使用的宿主机器的网络
- -network=container:NAME_or_ID:告诉 Docker 让新建的容器使用已有的容器网络配置
- -network=none:不配置容器网络,用户可自定义网络配置
- 下面命令会让终端打印 Hello World 字样,跟在本地直接执行 /bin/echo 'Hello World' 一样
docker run java /bin/echo 'Hello World'
- 启动一个 Nginx 容器(默认Nginx配置为80端口),指定宿主机端口(这里指定端口为91),当访问 http://Docker宿主机IP:91/ 时会映射到容器80端口中,即可看到 Nginx 主页
docker run -d -p 91:80 nginx
docker run 命令在创建容器时,会检查本地是否存在指定镜像,如果不存在则从 Docker Hub 下载并启动
- 列出容器
- 使用 docker ps 命令即可列出运行中的容器,显示的信息包括:
属性 |
描述 |
CONTAINER_ID |
容器ID |
IMAGE |
镜像名称 |
COMMAND |
启动容器时运行的命令 |
CREATED |
容器创建的时间 |
STATUS |
容器运行的状态,UP 表示运行中,Exited 已停止 |
PORTS |
容器对外端口号 |
NAMES |
容器名称,默认由 Docker 自动生成,也可使用 docker run --name 选项指定 |
docker ps
docker ps -a #显示容器,包含停止的容器
- 停止容器
- 使用 docker stop 命令停止容器,784fd3b294d7 为容器 ID,也可使用容器名称来停止容器
docker stop 784fd3b294d7
docker kill 784fd3b294d7
- 启动停止的容器
- 通过 docker run 命令即可新建并启动一个容器,对于已停止的容器,可使用 docker start 命令来启动
docker start 784fd3b294d7
- 重启容器
- 可使用 docker restart 命令来重启容器
docker restart
- 进入容器
nsenter --target "$PID" --mount --uts --ipc --net --pid
- 删除容器
- 使用 docker rm 命令删除指定容器,该命令只能删除停止运行的容器
docker rm 784fd3b294d7
docker rm -f $(docker ps -a -q)
- 数据拷贝
- 获取容器/镜像的元数据
- 通过 docker inspect 来获取元数据,包含挂载目录信息等
docker inspect linyuantongxue/docker-demo:0.0.1
Docker 挂载目录