Docker部署常见问题

一、删除容器和镜像

在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器(哪怕是已经停止的容器),否则无法删除该镜像。

停止容器

# docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除容器

# docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')

# docker rm -v $(docker ps -aq -f status=exited)

删除镜像

# docker rmi $(docker images | grep "none" | awk '{print $3}')

删除镜像

docker rmi IMAGE [IMAGE...] 其中IMAGE可以为镜像标签或者ID

#当同一个镜像拥有多个标签时,docker rmi命令只是删除了该镜像多个标签中的指定标签,并不影响镜像文件本身,但当镜像只剩下一个标签时,此时就会彻底删除镜像。
#当docker rmi命令后面跟的是镜像ID时,会尝试删除所有指向该镜像的标签,然后删除镜像文件本身,如果该镜像存在多个标签,默认无法删除,需要加-f进行删除。
#如果有基于该镜像创建的容器,则默认无法删除镜像,需要先通过docker rm删除容器,然后再用docker rmi删除镜像,或者使用docker rmi -f强制删除(不推荐)。

二、查看日期日志
docker logs -f -t --since="2018-02-07" --tail=10 [61462bcea73b容器ID或者名称]

--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。

-f : 查看实时日志

-t : 查看日志产生的日期

-tail=10 : 查看最后的10条日志。

edu_web_1 : 容器名称

 

三、容器IP查询

要获取所有容器名称及其IP地址只需一个命令
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

显示所有容器IP地址:
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

 四、其他

docker run -it \
-v $HOME/mvc:/app \
microsoft/dotnet:latest

FROM microsoft/dotnet:latest
WORKDIR /app
COPY . /app
RUN dotnet restore
EXPOSE 6100
ENV ASPNETCORE_URLS http://*:6100
ENTRYPOINT ["dotnet","run"]

五、Nginx配置文件

/etc/nginx/conf.d/default.conf

server {
listen 80; //Nginx监听端口
location / {
proxy_pass http://172.17.0.2:6100; //web服务容器IP:对外开放访问端口号
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'keep-alive';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

六、Nginx反向代理运行

docker run -d -p 808:80 \
--name nginxserver \
-v $HOME/nginx/my_nginx.conf:/etc/nginx/conf.d/default.conf:rw \
-v $HOME/nginx/logs/error.log:/var/log/nginx/error.log:rw \
nginx

注意:挂载的目录都要已存在,不然会报错。


七、使用该命令进入一个已经在运行的容器

$ sudo docker ps
$ sudo docker exec -it [94fdeebf552b容器ID] /bin/bash

posted on 2018-02-07 17:27  VincentZhu  阅读(310)  评论(0编辑  收藏  举报