Home Docker基础命令
Post
Cancel

Docker基础命令

整理Docker基本命令

列出本地的镜像

1
2
3
4
5
6
7
8
9
10
11
docker images
#or
docker image ls
#or
docker images -q #只显示镜像id
# 按正则表达式过滤
docker images | egrep -o "正则表达式"
# 过滤出已xxx开始的镜像名
docker images "xxx/*"
# 过滤出<none>的镜像
docker images --filter "dangling=true"

基于本地镜像创建一个新的镜像

1
docker tag source_image target_image

运行镜像

1
2
#--name 表示设置运行的容器别名; -p 端口映射,前面的服务器端口,后面是容器端口; -d 表示后台运行
docker run [--name name] [-p 8080:800] [-d] image-name

查看正在运行的容器

1
2
3
4
# -a 表示查看所有容器
docker ps [-a]
#or
docker container ls [-a]

停止运行容器

1
docker stop containerId

删除容器

1
docker rm containerId

强制停止并移除

1
docker rm -f containerId

删除本地镜像

1
docker rmi imageId

build项目,生成镜像

1
2
3
# -t 表示设置镜像名, '.'表示当前目录
# 根据当前目录下的Dockerfile, 生成镜像
docker build -t image_name . 

查看日志

1
2
# -f 表示一直刷新
docker logs [-f] containerId

进入容器系统

1
docker exec -it containerId bash

不进入系统,运行命令直接返回

1
docker exec containerId commnad

导出镜像

1
2
3
4
docker save [-o/> local_file] images

#example
docker save -o helloworld.tar helloworld:latest

加载镜像文件

1
2
3
4
docker load [-i/< local_file]

#example
docker load -i helloworld.tar

导出容器

1
2
3
4
docker export [-o local_fle] container

#example
docker export -o container_name.tar container_name

导入容器

1
docker import container_name.tar container_name

docker compose

1
2
3
# 根据本目录下的compose file运行。可同时起多个镜像,并设置彼此的依赖关系等。
docker-compose up -d
docker-compose down

查找镜像

1
docker search registry

拉取镜像

1
docker pull registry

上传镜像

1
docker push registry

Docker file

Dockerfile中,CMDENTRYPOINT都只有一个,且CMD会被最后一个替换,这两个都是在容器运行时运行。RUN是在生成镜像时运行。

本地仓库

1
2
3
4
5
6
7
8
#1 拉取仓库镜像
docker pull registry
#2 启动仓库镜像
docker run -d -p 5000:5000 -v /backup_path:/var/lib/registry registry
#3 将需要保存到本地的镜像,改名称以本地镜像地址起头
docker tag origin_image 127.0.0.1:5000/local_registry_image
#4 保存到本地
docker push 127.0.0.1:5000/local_registry_image

第4步中push可能会失败,因为本地启动的registry服务不是安全可信赖的。需要去修改docker的配置文件:/etc/default/docker,添加--insecure-registry:

1
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com --insecure-registry 127.0.0.1:5000"

宿主文件导入到容器

1
2
3
4
5
6
docker cp local_path containerId:[container_path]

# example 将sql文件导入到容器,并允许
docker cp ./test.sql mysql:/tmp/test.sql
# 进入到容器,进入mysql后,执行sql文件
source /tmp/test.sql

容器文件导出到宿主

1
docker cp containerId:[container_path] local_path

Docker安装

Docker安装官方文档

This post is licensed under CC BY 4.0 by the author.