docker 命令详解

环境信息与Repo

Docker - 实现本地镜像的导出、导入(export、import、save、load)

docker info [option]
docker info --format '{{json .}}'

docker info [option]
docker version --format '{{.Server.Version}}'

镜像管理

Command Description Example
docker search 搜索镜像 docker search nginx
docker image ls 列出所有镜像 docker image ls -f dangling=true / docker images
docker image build 从Dockerfile建立一个镜像 docker image build -t image:1.0 -f /root/Dockerfile
docker image tag 给镜像重新打标签 docker image tag nginx:latest nginx:v1
docker image pull 从镜像仓库拉取镜像 docker image pull nginx:latest
docker image push 上传镜像到镜像仓库 docker image push ngxin:v1
docker image inspect 查看一个或多个镜像信息 docker image inspect nginx:latest
docker image save 保存一个或多个镜像为tar文件 docker image save -O images.tar postgres:9.6 mongo:3.4
docker image load 加载镜像从tar文件 docker image load -i < images.tar
docker image rm 删除一个或多个镜像 docker image rmi nginx:latest
docker image imprt 从tar中导入内容创建镜像 docker image import nginx.tar nginx:v1
docker image history 显示镜像的历史 docker image history nginx
docker image prune 删除未被使用的镜像 /

容器管理

Command Description Example
docker container ps / ls 列出所有容器 docker container ls -a / docker ps
docker container inspect 显示一个或多个容器信息 docker container inspect [ubuntu
docker container run 从镜像创建及运行新容器 docker container run -itd --name ubuntu ubuntu:latest bash
docker container exec 进入容器执行命令 docker container exec -it unbuntu bash
docker container attach 将本地标准输入、输出和错误流附加到一个正在运行的容器上(attach 进入容器后退出,容器也会停止,建议使用exec) docker container attach ubutun
docker container top 显示容器运行的进程 docker container top ubuntu / caf5
docker container kill Kill one or more running containers docker container kill [ubuntu
docker container logs 获取(Fetch)容器日志 docker container logs -f [ubuntu
docker container start 启动一个或多个容器 docker container start container_name / ID
docker container stat 显示容器资源使用统计的实时流(可以使用top) docker container stats container_name / ID
docker container stop 停止一个或多个容器 docker container stop container_name / ID
docker container restart 重启一个或多个容器 docker container restart container_name / ID
docker container export 将一个容器(根据容器 ID)的文件系统导出为一个tar归档文件 docker container export 1e560fca3906 > ubuntu.tar
docker container rm 删除一个或多个容器 docker container rm ubuntu
docker container cp 在一个容器和本地文件系统之间复制文件/文件夹 docker container cp ./some_file CONTAINER:/work
docker container prune 移除所有停止的容器 docker container prune
docker container port 列出容器的端口映射或特定映射 docker container port container_name / ID
docker container rename 重命名容器 docker container rename CONTAINER NEW_NAME
docker container commit 从一个容器的变化中创建一个新的镜像 docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker container create 创建一个新的容器 docker container create -i -t --name mycontainer ubuntu
docker container diff 检查容器的文件系统上的文件或目录的变化 /
docker container pause 暂停一个或多个容器内的所有进程 /
docker container unpause 解除一个或多个容器内所有进程的暂停状态 /
docker container update 更新一个或多个容器的配置 /
docker container wait 阻塞直到一个或多个容器停止,然后打印它们的退出代码 /

网络与数据持久化(yum install bridge-utils -y)

Docker数据卷(Volume)
Docker:网络模式详解
Docker的4种网络模式

  1. bridge 默认模式,相当于VMware中的NAT模式(VMnet8) --net=bridge
    1. 容器使用独立Network Namespace,并连接到docker0虚拟网卡(默认模式);
  2. host 模式,相当于VMware中的桥接模式(VMnet0) --net=host
    1. 与宿主机在同一个网络中,但没有独立IP地址;
  3. container 模式, --net=container:NAME(已存在的) or ID 指定
    1. 不和宿主机共享,新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等;
  4. none 模式(lo), --net=none
# docker network
1. docker network connect	  # Connect a container to a network
2. docker network create	    # Create a network
3. docker network disconnect	# Disconnect a container from a network
4. docker network inspect	  # Display detailed information on one or more networks
5. docker network ls	        # List networks
6. docker network prune	    # Remove all unused networks
7. docker network rm	        # Remove one or more networks

1) 网络别名: docker run --name nginx_002 -itd --privileged=true --link=nginx_001:web_001 nginx /bin/bash

# dokcer volume  local:container
1. docker volume create         # Create a volume
2. docker volume inspect        # Display detailed information on one or more volumes
3. docker volume ls             # List volumes
4. docker volume prune          # Remove all unused local volumes
5. docker volume rm             # Remove one or more volumes

1) volumes:Docker管理宿主机文件系统的一部分,/var/lib/docker/volumes(**官方推荐的持久化方案**)
   docker run -d -it --name=nginx-test -p 88:80 -v nginx-vol:/usr/share/nginx/html/:ro nginx
   docker run -d -it --name=nginx-test -p 88:80 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx

2) bind mounts:可以存储在宿主机系统的任意位置,必须先创建好挂载数据卷,不可移植;
   docker run -itd --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx

3) tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统;(**一般都不会用的方式**);

4) 备份数据卷:docker run --volume-from [container name] -v $(pwd):/backup --name centos tar czvf /backup/backup.tar.gz [container data volume] 
5) 恢复数据卷:docker run --volume-from [container name] -v $(pwd):/backup --name centos tar xzvf /backup/backup.tar.gz -C /
posted on 2023-04-18 00:28  anyu967  阅读(38)  评论(0)    收藏  举报