docker中挂载本地目录

docker run -it -v  本地目录的绝对路径:docker中的目录  dockerID  dockerAPP

docker中使用宿主机网络

docker run -it -d --net=host

查看docker挂载了哪个本地目录

docker inspect cloud|grep Mounts -A 10

docker常见错误

  • 125,Docker守护进程本身的错误
  • 126,容器启动后,要执行的默认命令无法调用
  • 127,容器启动后,要执行的默认命令不存在

docker删除正在运行的容器

docker rm -f container


docker加速

注册阿里账号比较靠谱

Docker退出容器不关闭容器

Ctrl+P+Q

Docker容器重命名

docker rename oldname newname

解决docker中centos没有systemctl命令

docker run --privileged -it -d centos /usr/sbin/init 
#注意2点:1. --privileged 参数必须加,2. /usr/sbin/init作为容器的启动命令
docker exec -it $containerID bash #进入容器的bash命令行
systemctl #验证systemctl 命令是否可用

docker打印完整进程名称

docker ps --no-trunc

docker后台进程中另开一个shell

docker exec -it $container-name /bin/bash


查看容器的stdout

docker logs -f container    #实时输出

和宿主机共用进程

docker --pid=host

和宿主机共用网络

docker --net=host

dockerfile入门


Dockerfile RUN,CMD,ENTRYPOINT命令区别

RUN 指令通常用于安装应用和软件包。RUN 在当前镜像的顶部执行命令,并通过创建新的镜像层
CMD

docker run --name nginx-test -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/:/etc/nginx/  -p 80:80 -d nginx

指令允许用户指定容器的默认执行的命令。此命令会在容器启动且 docker run 没有指定其他命令时运行。但当后面加上一个命令,比如 docker run -it [image] /bin/bash,CMD 会被忽略掉,命令 bash 将被执行


ENTRYPOINT配置容器启动时的执行命令(不会被忽略,一定会被执行,即使运行 docker run时指定了其他命令)。ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。

删除dangling images

docker image prune


docker运行nginx

docker run --name nginx-test -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/:/etc/nginx/  --net=host -d nginx

docker保存container到image

docker export <CONTAINER ID> | docker import - some-image-name:latest


docker stat性能监控