Docker常用命令
Docker常用命令 基础-Dockerfile-网络
帮助命令
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
Dockerfile命令:
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像的作者,姓名+邮箱
RUN # 镜像构建时增加额外的运行命令
ADD # 集成镜像,添加内容
WORKDIR # 镜像的工作目录
VOLUME # 镜像的挂载目录
EXPOSE # 镜像的暴露端口
CMD # 指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定容器启动的时候要运行的命令,可以直接追加命令
ONBUILD # 当构建一个继承的镜像时触发的指令
COPY # 类似ADD,区别是COPY只能拷贝本地文件到镜像中
ENV # 构建时设置环境变量

docker 网络

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通。
浙公网安备 33010602011771号