docker version
显示docker的版本信息。
docker info
显示docker的系统信息,包括镜像和容器的数量
docker [命令] --help
帮助命令
docker images
列出所有镜像
docker build [Dockerfile] .
根据Dockerfile制作镜像
docker pull [image name] [:tag]
从镜像仓库拉取镜像
docker push [url]
向镜像仓库推送镜像 docker push 192.168.204.241:8888/ccsy/manage-service:1.0
docker rmi -f
强制删除镜像
docker rmi -f ${docker images -aq}
强制删除所有镜像
docker run [镜像id]
新建容器并启动
docker run [可选参数] [镜像id]
参数说明
--name 容器名字 ,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-v 挂载文件目录 -v [宿主机文件目录]:[容器文件目录]
-p 指定容器的端口 -p 8080(宿主机):8080(容器)
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
-P(大写) 随机指定端口
docker ps 列出所有运行的容器 docker container list
docker ps 命令 列出当前正在运行的容器
-a, --all Show all containers (default shows just running)
-n, --last int Show n last created containers (includes all states) (default -1)
-q, --quiet Only display numeric IDs
docker rm [容器id]
容器id 删除指定容器
docker start [容器id]
启动容器
docker restart [容器id]
重启容器
docker stop [容器id]
停止当前正在运行的容器
docker kill [容器id]
强制停止当前容器
exit
容器直接退出
ctrl +P +Q
容器不停止退出
docker logs -t --tail [n] [容器id]
查看n行日志
docker logs -tf [容器id]
跟着日志
-tf 显示日志信息(一直更新)
--tail number 需要显示日志条数
docker inspect [容器id]
方式一:
docker exec -it [容器id] /bin/bash
进入容器
方式二:
docker attach [容器id]
手动拷贝容器中的文件:docker cp 容器路径 主机路径
将操作后的容器通过 commit 提交为一个镜像,以后就可以使用改进后的镜像
docker commit -m "提交的描述信息" -a "作者" 容器id 目标镜像名:[tag]
docker commit -m redis03 -a wang 1cb03fa12b54 redis03:1.0
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像的作者,姓名+邮箱
RUN # 镜像构建时增加额外的运行命令
ADD # 集成镜像,添加内容
WORKDIR # 镜像的工作目录
VOLUME # 镜像的挂载目录
EXPOSE # 镜像的暴露端口
CMD # 指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定容器启动的时候要运行的命令,可以直接追加命令
ONBUILD # 当构建一个继承的镜像时触发的指令
COPY # 类似ADD,将文件拷贝到镜像中
ENV # 构建时设置环境变量
tomcat01 和 tomcat02 共用一个路由器 docker0。所有的容器在不指定网络的情况下,都是通过 docker0 实现路由。容器通过 veth-pair 技术取得网卡,使用 Docker 默认的 docker0 桥接模式实现路由,使得容器间可以通过 ip 地址 ping 通。如果容器被删除了,容器的网络也就消失了。
容器网络连通虽然可以直接实现容器互联,但其局限性很大,所以自定义网络一般使用桥接模式。
docker network ls
查看docker所有网络
通过 docker network create --driver[网络模式] --subnet [子网网段] --gateway [网络ip] [netname]
命令创建自定义网络。
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
--net [netname]
docker run -d -P --name tomcat-net-01 --net mynet tomcat
docker run -d -P --name tomcat-net-02 --net mynet tomcat
docker network inspect [netname]
docker network inspect mynet
tomcat-net-01和 name tomcat-net-02容器间就可以ping通了
通过docker network connect
命令打通容器与自定义网络。
docker network connect mynet tomcat01
此时tomcat01就可以和name tomcat-net-01、name tomcat-net-02 ping通,但是tomcat02无法ping通。
原文:https://www.cnblogs.com/hooong/p/14721552.html