Docker常用命令总结
帮助命令
|
|
docker 命令 --help
|
帮助命令
|
镜像命令
|
|
docker version
|
显示docker的版本信息
|
docker login -u + dockerhub用户名
|
登录dockerhub远程仓库
|
docker logout
|
退出登录
|
docker info
|
显示docker的系统信息,包括镜像和容器数量等
|
docker images
|
查看所有本地主机上的镜像
|
docker images -a
|
查看所有本地主机上的镜像
|
docker images -q
|
只显示镜像的id
|
docker images -aq
|
列出所有镜像的id
|
docker search + 镜像名(mysql nginx)
|
搜索镜像
|
docker search --filter
|
过滤搜索镜像
|
docker search --filter=STARS=3000
|
搜索出STARS大于3000的mysql镜像
|
docker pull + 镜像名(mysql nginx)
|
下载镜像,默认下载最新版本
|
docker pull + 镜像名:版本号
|
下载镜像,指定版本
|
docker rmi -f + 镜像id
|
删除镜像
|
docker rmi -f + 镜像id1 镜像id2 镜像id3
|
删除多个镜像
|
docker rmi -f $(docker images -aq)
|
删除所有镜像
|
docker build -f + 文件名 + -t + 镜像名:版本号+ .
|
自定义镜像,构建Dockerfile文件,注意最后加一个.
-f 说明当前是哪个文件需要构建。如果文件名为Dockerfile
,就可以不用-f来指定
|
提交镜像到远程仓库的步骤:1.docker commit 2.docker tag 3.docker push
2和3也可以一步完成!
|
|
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名(自己命名):【TAG】(自己命名)
|
提交镜像
|
docker tag +镜像id +dockerhub用户名/自定义镜像名:tag
|
重命名镜像-----docker
比如:docker tag e77b61ff8ac3 xxx1361/tomcat:1.0
|
docker push + docker tag重命名后的镜像名和版本号
|
push镜像到dockerhub,使用经过docker tag重命名后的镜像
比如:docker push xxx1361/tomcat:1.0
|
docker push + dockerhub用户名/自定义镜像名:【tag】自定义版本号
|
push镜像到dockerhub,未使用经过docker tag重命名后的镜像
|
docker tag + 镜像id+阿里云镜像服务新建仓库时生成的目录:版本号
|
重命名镜像-----aliyun
比如:docker tag e77b6ff8ac3 registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
docker push + tag重命名后的镜像名和版本号
|
push到阿里云镜像仓库,使用经过docker tag重命名后的镜像,比如:docker push registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
docker push + 镜像id +镜像目录(每次创建镜像仓库,阿里云生成的目录):【tag】自定义版本号
|
push到阿里云镜像仓库,未使用经过docker tag重命名后的镜像
|
docker pull + tag重命名后的镜像名和版本号(docker images查看)
|
docker pull registry.cn-hangzhou.aliyuncs.com/test/tomcat-test:2.0
|
容器命令 有了镜像才可以创建容器
|
|
docker create + 镜像名
|
新建容器,不启动
|
docker run 【可选项】+ 镜像名
|
新建容器并启动
|
docker run --name nginx01 -p 2233:80 nginx
|
启动多个容器时,使用--name进行区分容器,2233表示可以通过2233端口访问docker中nginx的80端口中的内容
|
docker run -d + 镜像名
|
以后台方式运行
|
docker run -it + 镜像名
|
使用交互方式运行,可进入容器查看内容
|
docker run -p 主机端口:容器端口 + 镜像名
|
指定容器的端口
|
docker run -P + 镜像名
|
随机指定端口
|
docker run -it centos /bin/bash
|
以交互方式创建并启动主机名为centos的容器
|
docker ps
|
列出当前正在运行的容器
|
docker ps -a
|
列出当前正在运行的容器+历史运行过的容器
|
docker ps -n=?
|
列出最近运行的几个容器
|
docker ps -q
|
显示所有正在运行的容器的id
|
docker ps -aq
|
列出所有容器的id,包括未运行和运行过的容器
|
exit
|
退出容器,容器停止
|
Ctrl+P+Q
|
退出容器,容器不停止
|
docker rm 容器id
|
删除指定的容器,不能删除正在运行的容器,可以使用rm -f强制删除
|
docker rm -f $(docker ps -aq)
|
强制删除所有容器
|
docker diff + 容器id
|
查看容器变化
|
docker start + 容器id
|
启动容器
|
docker restart + 容器id
|
重启容器
|
docker stop + 容器id
|
停止当前正在运行的容器
|
docker kill + 容器id
|
强制停止当前容器,如果docker stop失败时可以使用docker kill
|
docker pause + 容器id
|
暂停容器
|
docker unpause + 容器id
|
取消暂停容器
|
docker logs
|
打印日志
|
docker logs -tf
|
查看包含时间戳和输出内容在内的日志信息
|
docker logs -tail +条数
|
查看指定条数的日志信息
|
docker top + 容器id
|
查看容器中的进程信息
|
docker inspect + 容器id
|
查看镜像元数据
|
docker exec -it + 容器id /bin/bash
|
方式1:进入已运行的容器。进入容器后开启另一个新的终端,可以在里面操作【常用】
|
docker attach + 容器id
|
方式2:进入已运行的容器。进入正在执行的终端,不会启动新的进程
|
ps -ef
|
查看容器中运行的进程,进入运行的容器后,在容器中使用
|
touch+ 文件名.文件类型
|
创建文件
|
docker cp + 容器id:容器内路径 目的主机路径
|
从容器中拷贝文件到主机上
|
curl+地址:端口号
|
用于测试访问服务
|
docker stats
|
查看CPU的状态
|
docker volume ls
|
查看所有卷
|
docker history + 镜像id
|
查看镜像的构建过程
|
数据卷挂载
|
|
docker run -it -v 宿主机目录:容器内目录
|
指定路径挂载
|
docker run -d -v + 数据卷名:容器内路径
|
具名挂载
|
docker run -d -v + 容器内路径
|
匿名挂载
|
VOLUME ["自定义名字","自定义名字
","自定义名字"]
|
通过dockerfile文件自动挂载,挂载目录自动生成
|
docker volume ls
|
查看所有卷
|
docker volume inspect + 数据卷名
|
查看数据卷的详细信息。包括卷挂载的目录等。
|
所有的docker容器内的卷,没有指定目录的情况下,都是在/var/lib/docker/volumes/卷名/_data下
|
|
docker run -e
|
配置密码
比如:docker run -d -p 3300:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0
|
数据卷容器--------实现容器内的卷数据同步,前提是容器内有两个数据卷
|
|
docker run -it --name=docker02 --volumes-from docker01 + 镜像id
|
启动并将docker02挂载到docker01
|
docker网络
|
|
docker network ls
|
查看所有的网络
|
docker --link
|
容器互联 (不建议使用)
比如:docker run -d -P --name tomcat02 --link tomcat01 tomcat,这样tomcat02就可以ping通tomcat01
|
docker --net
|
指定网络模式,默认是bridge ,对应网桥为docker0
docker run -d -P --name tomcat01 --net host tomcat
|
docker network create + 配置信息 + 网络名
|
自定义网络
比如:docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
|
docker network connect + 网络名 + 容器名
|
网络连通
连接一个容器到网络,一个容器两个ip地址;就好比阿里云服务器:公网IP、私网IP
|
apt update
|
更新软件命令
|
apt install -y iproute2
|
安装iproute2工具包
iproute2包含了ifconfig、arp、route、netstat等命令
|
apt install -y iputils-ping
|
安装ping命令
|
容器编排(docker-compose )
|
|
docker-compose up
|
前台启动compose
|
docker-compose up -d
|
后台启动compose
|
docker-compose up --build
|
构建并启动compose
|
docker-compose down Ctrl+C
|
停止compose
|
集群的管理和编排(docker-swarm)
|
|
yum install -y gcc
|
在服务器进行同步操作。
集群时,先执行这个命令,就可以同时在几台服务器上安装工具
|
docker swarm init --advertise-addr + 地址
|
生成主节点,初始化节点
|
docker swarm join-token manager
|
获取/生成manager(主)令牌
|
docker swarm join-token worker
|
获取/生成worker(从)令牌
|
docker swarm join --token + 令牌
|
加入节点
|
docker node ls
|
查看节点
|
docker swarm leave
|
离开集群
|
docker service --help
|
查看服务的帮助命令
|
docker service create -p 宿主机端口:容器端口 --name + 自定义服务name + 镜像名
|
启动服务
|
docker service ps + 服务名
|
查看正在运行的服务
|
docker service inspect + 服务名
|
查看服务的详细信息
|
docker service update --replicas + 数量 + 服务名
|
服务扩缩容
|
docker service scale 服务名=数量
|
|
docker service rm + 服务名
|
移除服务
|
docker service create --mode replicated --name + 服务名 镜像:tag
|
服务以副本服务的方式运行,默认是replicated
|
docker service create --mode global --name + 服务名 镜像:tag
|
服务以全局服务的方式运行
|
本文来自博客园,作者:{jkal},转载请注明原文链接:https://www.cnblogs.com/jkal/p/16672550.html