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