Docker 命令

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

*
*
*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值