Docker命令

87 阅读4分钟

帮助命令

Docker run 启动的东西

Docker version 显示docker的版本信息

Docker info 显示docker的系统信息 包括镜像和容器的数量

Docker --help 帮助命令

镜像命令

docker images 查看本地所有镜像

 -a  #列出所有镜像 -q #只显示镜像的id

docker search 搜索

--filter=搜索的列=搜索的条件

dockers pull 下载镜像

docker pull 下载的东西:版本号

docker rmi 删除镜像

docker rmi -f 容器id #删除指定容器  docker rmi -f 容器id 容器id  #删除多个容器docker rmi -f $(docker images -aq) # 删除全部容器

容器命令

docker pull centos 下载一个基本镜像

docker run[可选参数] image

--name = "name" 容器名字 tomcat01 tomcat02 用来区分命令-d 后台方式运行-it 使用交互方式运行 ,进入容器查看内容-P 随机指定端口-p 指定容器端口 -p8080:8080

docker run 容器名称 /bin/bash

exit 从容器中退回到主机

dockers ps 查看容器

docker ps -a 查看正在运行的容器docker ps -n=?显示最近创建的容器 

exit 直接退出容器并停止

docker rm 容器id

docker rm -f $(docker ps -aq) 删除所有容器

docker start 启动容器

docker restart 重启容器

docker stop 停止当前运行的容器

docker kill 强制停止当前容器

常用命令

后台启动

docker run -d centos

docker logs -ft 容器id 查看全部日志

docker logs -ft --tail 查看的日志数量 容器id 查看指定条数的日志

docker inspect 查看容器信息

docker exec -it 容器的id 进入正在运行的容器

docker attach 容器的id 进入正在运行的容器

exec 进入容器会开启一个新的终端可以在里面操作(常用)  attach 进入容器正在执行的终端 不用启动新的进程

部署Nginx

docker search nginx 查询nginx

docker pull nginx 从docker上拉取nginx

docker run -d --name 设置的名字 -p设置的端口号:默认端口号 nginx

部署tomcat

#下载tomcat

docker pull tomcat

#启动运行

docker run -d -p 3355:8080 --name tomcat01 tomcat

#测试访问有没有问题

#进入容器

docker exec -it tomcat01 /bin/bash

容器数据卷

什么是容器数据卷

docker的理念回顾

将应用和环境打包为一个镜像!

数据?如果数据都在容器里卖弄,那么我们容器删除,数据就会丢失! 数据持久化

mysql,容器删了,删库跑路了!需求:MySql数据可以存储在本地!

容器之间可以一个数据共享的技术!Docker容器产生的数据,可以同步到本地!

这就是卷技术!目录挂载,将我们容器的内容,挂载到Linux上面!

总结一句话:容器的持久化和同步操作!容器间也可以使用数据卷

docker run -it -v 本机:容器

docker run -it -v /home/ceshi:/home centos /bin/bash

数据卷加了以后两边可以双向操作

具名和匿名挂载

#匿名挂载

-v 容器内路径

docker run -d -p --name nginx01 -v /etc/nginx nginx

#查看所有得 volume 的情况

docker volume

只写了容器内的路径,没有写容器外的路径!

#具名挂载

docker run -d -p --name nginx02 -v-nginx:/etc/nginx nginx

docker volume ls

所有的docker容器内的卷,没有指定目录的情况下都是在

/var/lib/docker/volumes/xxxx/_da

我们通过具名挂载可以方便的找到我们的一个卷,大多数都是使用具名挂载

#如何确定是具名挂载还是匿名挂载,还是指定路径挂载

-v 容器内路径 #匿名挂载

-v 卷名:容器内路径 #具名挂载

-v /宿主机路径:容器内路径 #指定路径挂载

拓展:

#通过 -v 容器内路径:ro rw 改变读写权限

ro readonly #只读

rw readwrite #可读可写

#一旦这个设置了容器权限 ,容器对我们挂载出来的内容就有了限定了!

docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:ro nginx

docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

dockerFile

From XXX(基于什么镜像) WORKDIR(指定shell语句运行在那个路径下) COPY(将宿主机的文件拷贝到某路径下) RUN(运行shell语句,只要构建就会运行,如echo 321 >> 1.txt) CMD (指定镜像启动运行的脚本,只有容器真正运行的时候才会运行的脚本,执行后容器的生命周期即结束,且一般为阻塞式语句,如tail语句)

一般语句为:

FROM WORKDIR COPY-ADD RUN CMD-ENTRYPOINT ENTRYPOINT非json则以ENTRYPOT为准,如果ENTRYPOINT和CMD都是JSON则ENTRYPOINT+CMD拼接成shell

EXPOSE---暴露镜像的指定端口 VOLUME---指定映射文件 ENV---指定doker的环境变量,运行时一直生效 ARG---构建参数,运行时无效,可以构建时候临时修改变量 LABEL---指定元数据,便于找到docker ONBUILD---当前镜像构建的时候不会执行,基于当前镜像的镜像去构建的时候才会执行 STOPSIGNAL---指定容器使用什么信号,一般指定信号名 HEALTHCHECK---检查容易的健康状态 SHELL---指定linux为/bin/sh,windows为cmd