Docker镜像和容器


1. image 镜像

命令 含义 语法 案例
ls 查看全部镜像 docker image ls
search 查找镜像 docker search [imageName]
history 查看镜像历史 docker history [imageName]
inspect 显示一个或多个镜像详细信息 docker inspect [imageName]
pull 拉取镜像 docker pull [imageName]
push 推送一个镜像到镜像仓库 docker push [imageName]
rmi 删除镜像 docker rmi [imageName] docker image rmi 2
prune 移除未使用的镜像,没有标记或补任何容器引用 docker image prune docker image prune
tag 标记本地镜像,将其归入某一仓库 docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] docker tag centos:7 zhangrenyang/centos:v1
export 将容器文件系统作为一个 tar 归档文件导出到 STDOUT docker export [OPTIONS] CONTAINER docker export -o hello-world.tar b2712f1067a3
import 导入容器快照文件系统 tar 归档文件并创建镜像 docker import [OPTIONS] file/URL/- [REPOSITORY[:TAG]] docker import hello-world.tar
save 将指定镜像保存成tar文件 docker save [OPTIONS] IMAGE [IMAGE…] docker save -o hello-world.tar hello-world:latest
load 加载 tar 文件并创建镜像 docker load -i hello-world.tar
build 根据 Dockerfile 构建镜像 docker build [OPTIONS] PATH / URL / - docker build -t zf/ubuntu:v1 .

docker image ls #查看镜像
docker search ubuntu #查找镜像
docker  pull docker.io/hello-world # 拉取镜像
docker image pull  docker.io/hello-world # 拉取镜像
docker rmi  hello-world #  删除镜像
docker export -o [新输入镜像的名称] [容器ID]

2. container 容器

常用命令

docker --help

# 启动容器
# -i --interactive	交互式
# -t --tty	分配一个伪终端
# -d --detach	运行容器到后台
# -a --attach list	附加到运行的容器
# -e --env list	设置环境变量
# -p --publish list	发布容器端口到主机
# -P	--publish-all 自己分配端口
# --name Assign a name to the container
docker run ubuntu /bin/echo "Hello world"# Docker以ubuntu镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果
docker run -d -p 1010:80 -e username="ghx" --name ghx-nginx nginx
docker container exec -it 3695dc5b9c2d /bin/bash #进入容器 

# 查看容器
## -q, --quiet        Only display container IDs
docker ps # 查看当前运行的容器
docker ps -a #显示所有的容器,包括已停止的
docker ps -l #显示最新的那个容器
docker ps -a -q #显示所有的容器ID
docker inspect [containerId] #显示一个或多个容器详细信息

# 运行交互式的容器
## -t, --tty 在新容器内指定一个伪终端或终端。
## -i, --interactive 允许你对容器内的标准输入 (STDIN) 进行交互。
## -p --port 端口映射
docker run -i -t ubuntu /bin/bash
docker run -d -p 8080:80 nginx 
exit


# 后台运行容器
## -d, --detach Run container in background and print container ID
docker run -d centos ping www.baidu.com
docker logs --follow [containerId]

# 杀死容器
## kill是不管容器同不同意,直接执行kill,强行终止;

docker kill [containerId]

# #删除容器
docker rm  [containerId] #删除容器
docker rmi [imageId]  #删除镜像
docker rm $(docker ps -a -q) # 删除所有容器

#启动容器
docker start [containerId]

# 停止容器
## stop,首先给容器发送一个TERM信号,让容器做一些退出前必须的保护性、安全性操作,然后让容器自动停止运行,如果在一段时间内,容器还是没有停止,再进行kill,强行终止
docker stop [containerId]

# 进入一个容器
docker attach [containerID] # 要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕
docker exec -it [containerID] /bin/bash #进入一个正在运行中的容器

#拷贝文件
##从正在运行的 Docker 容器里面,将文件拷贝到本机
docker container cp f6a53629488b:/root/root.txt .

#自动删除
docker run --rm ubuntu /bin/bash


docker container stats#显示一个容器运行的进程
docker update -m 500m  [containerID] #更新一个或多个容器配置

#端口映射
docker run -d -p 8080:80 nginx 
docker container port containerID

# 查看 docker 容器的输出
## -f, --follow         Follow log outpu
docker logs [containerId]
docker logs -f [containerId]


文章作者: 高红翔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 高红翔 !
  目录