赞
踩
Docker Documentation 官方文档【推荐】
Docker 命令大全 | 菜鸟教程
Docker Hub 镜像仓库
Docker Command 命令 官网
Docker service 官网
Docker node 官网
Docker compose 官网
镜像常用命令 docker image | Docker Docs
● docker search:搜索镜像
● docker pull:下载镜像
● docker push:上传镜像
● docker images:查看本地镜像
● docker inspect:获取镜像详细信息
● docker build:从Dockerfile构建镜像
● docker history:查看指定镜像的创建历史
● docker tag:添加镜像标签
● docker rmi:删除镜像
● docker save:导出镜像
● docker load:导入镜像
容器常用命令 docker container | Docker Docs
● docker ps:查询容器运行状态
● docker create:创建容器
● docker start:启动容器
● docker stop:停止容器
● docker rm:删除容器
● docker run:创建并启动容器
● docker inspect:查看容器ip地址
● docker exec:进入容器
● docker stop:终止容器运行
● docker logs:查看容器日志
● docker export:容器导出
● docker import:容器导入
● docker cp:宿主机文件与容器文件复制
● docker stats:查看docker消耗的资源状态
Docker 三剑客是指 docker-machine、docker-compose 和 docker-swarm
Kubernetes,别名也叫 K8s(因为 K 和 s 中有 8 个字符)是一个旨在自动化容器化应用的部署、扩展和管理
● 宿主机资源监测和管理
● 应用自动水平/垂直扩缩容以及回滚
● 应用健康检查和自愈
● 服务发现
● 集群内/外负载均衡
● 失效转移
● 流量自适应
*、查看 docker 版本
- # 显示 Docker 系统信息,包括镜像和容器数
- docker info
-
- # 查看版本
- docker version
- docker -v
-
- # 将当前 user 加入 docker 的用户组,以后可以不使用 sudo
- sudo usermod -aG docker $USER
- sudo gpasswd -a ${USER} docker
-
- # 更新用户组,刷新 docker 成员
- newgrp docker
-
- # 帮助
- docker --help
-
- # 查找 Docker-CE 的版本列表
- yum list docker-ce.x86_64 --showduplicates | sort -r

*、启动、重启、停止、杀死 docker 服务
- # CentOS 7.x
- # 查看 docker 服务状态
- sudo systemctl status docker
-
- # 启动 docker 服务
- sudo systemctl start docker
-
- # 重启 docker 服务
- sudo systemctl restart docker
-
- # 关闭 docker 服务
- sudo systemctl stop docker
-
- # 重新加载某个服务的配置文件
- sudo systemctl daemon-reload
-
- # CentOS 6.x 服务状态、启动、重启、停止
- sudo service docker status
- sudo service docker start
- sudo service docker restart
- sudo service docker stop

*、镜像仓库
- # 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
- docker login [OPTIONS] [SERVER]
- docker login -u 用户名 -p 密码
-
- # 从镜像仓库中拉取或者更新指定镜像
- docker pull
- docker pull java
-
- # 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
- docker push
- docker push myapache:v1
-
- # 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
- docker logout [OPTIONS] [SERVER]
- docker logout -u 用户名 -p 密码
-
- # 从Docker Hub查找镜像
- docker search
- docker search nginx

#查看所有镜像
- docker images
-
- # 命令语法
- docker images [OPTIONS]
- OPTIONS 参数说明:
- ● -a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
- ● --digests:显示镜像的摘要信息;
- ● -f:显示满足条件的镜像;
- ● --format:指定返回值的模板文件;
- ● --no-trunc:显示完整的镜像信息,不截断输出;
- ● -q:只显示镜像ID;
#进入镜像 docker exec | Docker Docs
dokcer exec -it 镜像名称 bash
#删除镜像【删除镜像前,必须先删除以此镜像为基础的容器】 docker rmi | Docker Docs
- #删除一个imageid的镜像【删除镜像前,必须先删除以此镜像为基础的容器】
- docker rmi [IMAE_ID]
- docker rmi <镜像-name>/<镜像-id>
- docker rmi hello-world
-
- # 子命令如下:
- -f, -force: 强制删除镜像,即便有容器引用该镜像;
- -no-prune: 不要删除未带标签的父镜像;
-
- # 删除所有镜像【删除镜像前,必须先删除以此镜像为基础的容器】
- docker rmi -f $(docker images -q)
- docker rmi -f $(docker images -qa)
- docker rmi $(docker images –qa)
- docker rmi $(docker images -q)
-
- # 删除所有镜像名为redis的镜像
- docker rmi $(docker images –q redis)
-
- # 删除名称中包含某个字符串的镜像
- # 例如删除包含“some”的镜像
- docker rmi --force $(docker images | grep some | awk '{print $3}')

# 从镜像仓库中拉取或者更新指定镜像,载入 ubuntu 镜像【下载镜像】
- # 从镜像仓库中拉取或者更新指定镜像
- docker pull ubuntu
- docker pull nginx:latest
- docker pull redis:latest
- docker pull mongo:latest
- docker pull mysql:latest
- docker pull rabbitmq:management
- docker pull wurstmeister/zookeeper
- docker pull wurstmeister/kafka
#有了Dockerfile之后,可以用build命令构建镜像【编译一个镜像出来】【注意最后的“.”】
- docker build -t getting-started .
- docker build -t v0210 .
- docker build -t netcore3.1v0210 .
- docker build -t net5v0210 -f Dockerfile .
- docker build -t netcore3.1v0210 -f Dockerfile .
# 查看所有容器运行状态 docker ps | Docker Docs
- # 查看运行中的容器
- docker ps
- # 查看所有容器,包括未运行的
- docker ps -a
- docker container ls -all
-
- # 命令语法
- docker ps [OPTIONS]
- OPTIONS 参数说明:
- ● -a:显示所有的容器,包括未运行的。
- ● -f:根据条件过滤显示的内容。
- ● --format:指定返回值的模板文件。
- ● -l:显示最近创建的容器。
- ● -n:列出最近创建的n个容器。
- ● --no-trunc:不截断输出。
- ● -q:静默模式,只显示容器编号。
- ● -s:显示总的文件大小。

# create 创建容器,不会立即启动运行 docker create | Docker Docs
- # 方法1:创建容器,在 counter-image 镜像上创建容器
- sudo docker create --name core-counter counter-image 0f281cb3af994fba5d962cc7d482828484ea14ead6bfe386a35e5088c0058851
-
- # 方法2:创建容器,使用docker镜像hello-world创建一个容器,容器名是test1
- sudo docker create --name test1 hello-world
-
- # 方法3:创建容器,使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoob
- sudo docker create --name myrunoob nginx
- sudo docker create --name myrunoob nginx:latest
-
- # 方法4:Step 1 : 一个镜像创建多个容器
- # 创建镜像名称为zhenlei1970/testdockernew的容器,容器名称为testdocker1,testdocker2
- sudo docker create --name testdocker1 -p 5000:80 zhenlei1970/testdockernew
- sudo docker create --name testdocker2 -p 5002:80 zhenlei1970/testdockernew
-
- # 方法4:Step 2 : 启动方法
- sudo docker start -a testdocker1
- sudo docker start -a testdocker2

# run 创建并启动容器 docker run | Docker Docs
- # 方法1:运行创建一个 nginx 容器
- docker run --name myNginx-p 80:80 -d nginx
- # 命令解释
- # docker run : 创建并运行一个容器
- # –name : 给容器起一个名字, 比如叫做 myNginx
- # -p : 将宿主机端口与容器端口映射, 冒号左侧是宿主机端口, 右侧是docker容器端口
- # -d : 后台运行容器
- # nginx : 镜像名称 , 例如nginx
#启动容器(运行容器)、重启容器、停止容器、强制停止
- #启动容器
- docker start <container-name>/<container-id>
- docker start b750bbbcfd88
-
- #重启容器
- docker restart <容器 ID>
-
- #停止容器
- docker stop <container-name>/<container-id>
- docker stop <容器 ID>
-
- #强制停止容器,杀掉一个或者多个正在运行的 Docker容器。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。
- docker kill <container-name>/<container-id>
#启动容器(所有容器)
- # 启动所有容器
- docker start $(docker ps -a -q)
- docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
-
- # 停止所有容器
- docker stop $(docker ps -a -q)
- docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
-
- # 删除所有容器
- docker rm $(docker ps -a -q)
- docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
-
- # 删除所有的镜像
- docker rmi $(docker images | awk '{print $3}' |tail -n +2)
-
- # 查看完整containerId
- docker ps --no-trunc

#发布
docker push YOUR-USER-NAME/getting-started
#Docker run 命令参数 OPTIONS说明
- OPTIONS 参数说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- --name="nginx-lb": 为容器指定一个名称;
- --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 设置环境变量;
- --env-file=[]: 从指定文件读入环境变量;
- --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- --link=[]: 添加链接到另一个容器;
- --expose=[]: 开放一个端口或一组端口;
- --volume , -v: 绑定一个卷

Docker run 启动容器、启动推送的应用程序
- # 创建一个新的容器并运行一个命令
- docker run
- docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-
- #
- docker run hello-world
-
- #
- docker run --name=<容器名称> -d<后台运行> -p <外部暴露端口>:<容器端口> <关联镜像>
- docker run --name=container1 -d -p 8076:80 v0210
- docker run -d -p 8077:80 v0210
- docker run -d -p 8078:80 v0210
- docker run -it -p 8079:80 v0210
- docker run -itd -p 8082:80 netcore3.1v0210
-
- docker run -dp 3000:3000 YOUR-USER-NAME/getting-started
- docker run -i -t ubuntu /bin/bash
- docker run -it ubuntu ls /
- docker run -it -p 4000:4000 docs/docker.github.io:v1.9
- docker run -ti -p 4000:4000
- docker run -itd --name ubuntu-test ubuntu /bin/bash

#启动redis
docker run -p 6379:6379 -d redis:latest redis-server
#启动rabbitmq
- #启动rabbitmq方式一:默认guest 用户,密码也是 guest
- docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
-
- #启动rabbitmq方式二:设置用户名和密码
- docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
#启动zookeeper、kafka
- #启动zookeeper
- docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper
-
- #启动kafka
- docker run --name kafka -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092 --link zookeeper:zk -t wurstmeister/kafka
#设置启动策略
docker run --restart always -it -p 8079:8079 v0210
#容器退出
- # 容器退出、停止
- exit
-
- # 容器退出、停止
- Ctrl + D
-
- # 正常退出,不关闭容器
- Ctrl + P + Q
#进入容器,再退出,不会导致容器停止,容器继续运行 docker exec | Docker Docs
- docker exec -it <容器名称>/<容器id> bash
- docker exec -it <容器名称>/<容器id> /bin/bash
- docker exec -it <container-name>/<container-id> /bin/bash
-
- docker exec -it <mysql-container-id> mysql -p
- docker exec <container-id> cat /data.txt
#进入容器,再退出,会导致容器停止,容器结束运行 docker attach | Docker Docs
- docker attach <container-name>/<container-id>
- docker attach 1e560fca3906
#删除容器【删除容器时,容器必须是停止状态】 docker rm | Docker Docs
- # 删除一个containerid的容器(实例)【删除容器时,容器必须是停止状态】
- docker rm <container-name>/<container-id>
- docker rm -f <id>
- docker rm -f 1e560fca3906
- docker rm wizardly_chandrasekhar
-
- # 删除所有容器【删除容器时,容器必须是停止状态】
- docker rm $(docker ps -aq)
-
- # 停止所有的容器container
- docker stop $(docker ps -a -q)
-
- #首先停用所有容器,然后删除所有容器
- docker stop $(docker ps -q) & docker rm $(docker ps -aq)
#容器命令 docker container | Docker Docs
● 容器创建 docker container create | Docker Docs
● 容器启动 docker container start | Docker Docs
● 容器停止 docker container stop | Docker Docs
● 容器杀死 docker container kill | Docker Docs
● 容器重启 docker container restart | Docker Docs
● 容器运行 docker container run | Docker Docs
● 容器删除 docker container rm | Docker Docs
● 容器阻止 docker container wait | Docker Docs
● 容器日志 docker container logs | Docker Docs
● 容器列表 docker container ls | Docker Docs
● 清理掉所有处于终止状态的容器 docker container prune | Docker Docs
- # 命令语法
- docker container prune [OPTIONS]
-
- # OPTIONS 参数说明:
- ● --filter:提供筛选值(例如,直到=<timestamp>)
- ● --force:-f【缩写】不提示确认
-
- # 实例
- docker container prune --force --filter "until=5m"
- docker container prune --force --filter "until=2017-01-04T13:10:00"
#为图像赋予一个新名称
docker tag getting-started YOUR-USER-NAME/getting-started
#查看日志 docker logs | Docker Docs
docker logs -f <container-id>
#
- docker command --help
- docker stats --help
#实现对 Docker 容器集群的快速编排 docker compose | Docker Docs
- docker-compose version
- docker-compose up -d
#安全扫描
docker scan getting-started
#显示镜像的历史 docker history | Docker Docs
- docker image history getting-started
- docker image history --no-trunc getting-started
参数说明:
- -d:让容器在后台运行。
- -i:交互式操作。
- -t:终端。
- ubuntu:15.10: 这是指用 ubuntu 15.10 版本镜像为基础来启动容器。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
- -P:随机端口映射【将容器内部使用的网络端口随机映射到我们使用的主机上】
- -p:指定端口映射,有四种格式 [ip:hostPort:containerPort; ip::containerPort; hostPort:containerPort; containerPort]
- -p:暴露端口 <暴露端口>:<容器端口> 8080:80 映射本地端口8080到容器80端口
*、docker events 从服务器获取实时事件,打印出实时的系统事件,实时输出 Docker 服务器端的事件,包括容器的创建、启动、关闭等。docker events | Docker Docs
- # 命令语法
- docker events [OPTIONS]
-
- # Options 参数说明:
- ● Option Short Description
- ● --filter -f Filter output based on conditions provided
- ● --format Format the output using the given Go template
- ● --since Show all events created since timestamp
- ● --until Stream events until this timestamp
-
- # 根据条件过滤事件
- docker events -f
- # 从指定的时间戳后显示所有事件
- docker events --since
- # 流水时间显示到指定的时间为止
- docker events --until

*、更改镜像源,镜像加速
国内镜像源
Docker 官方中国区:https://registry.docker-cn.com
网易:http://hub-mirror.c.163.com
中国科技大学:https://docker.mirrors.ustc.edu.cn
阿里云:https://y0qd3iq.mirror.aliyuncs.com
https://{your_id}.mirror.aliyuncs.com
daocloud:http://{your_id}.m.daocloud.io
- # 创建文件夹
- mkdir -p /etc/docker
-
- # 创建、编辑文件
- touch /etc/docker/daemon.json
- vim /etc/docker/daemon.json
- #加入以下内容,并保存 ESC -> : -> wq!
- {
- "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
- }
-
- # 重新加载配置文件
- systemctl daemon-reload
-
- # 重启Docker服务
- systemctl restart docker.service
- systemctl restart docker
-
- # 查看配置是否生效
- docker info|grep Mirrors -A 1

*
*
*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。