docker使用总结

创建镜像方式一:通过dockerfile创建镜像

docker build -t php:cible2.0 .

创建镜像方式二:通过容器创建镜像

docker commit 510f58f4ef4a php:cible3.0

docker commit -a 'wanghaokun' -m 'add imagick' vm-php wohaokun/php:7.3.19

新建网络

docker network create -d bridge vm-bf

通过镜像启动容器

#指定网络,可配置多个端口映射
docker run --name bf-nginx -p 9080:80 -p 9081:81 -d -v /Users/wanghaokun/dev/bsCode:/basicfinder/www --net vm-bf --restart=always cible/bf-nginx:1.12.0
docker run --name bf-php --net vm-bf --network-alias php -v /Users/wanghaokun/dev/bsCode:/basicfinder/www --restart=always -d cible/bf-php:7.3.19

#redis不再通过docker网络来创建,这样直接容器外也可以随意访问,可用性更强,redis.conf可参考 https://www.cnblogs.com/wanghaokun/p/14864076.html
  docker run -p 16379:6379 --name redis -v ~/dev/material/docinner/code/dockerfile/redis.conf:/etc/redis/redis.conf -d redis:6.2.4 redis-server /etc/redis/redis.conf

 推送镜像到公网

docker push cible/bf-nginx:1.12.0

 对镜像重新打标签

docker tag php:bf-dev cible/bf-php:7.3.19

一个容器连接多个network

 run 命令行时只允许关联一个network,多个后面会把前面的覆盖,可以通过下面方式关联多个
docker network connect vm-bf(network名称) vm-basicfinder-v3nf-php(容器名称)

设置容器自启动

参考:https://blog.csdn.net/xtjatswc/article/details/86586769

docker update --restart=always 容器名称 

遇到的问题

Redis容器启动后无法通过其他docker容器进行连接访问

1. 判断通过本机(容器外), redis-cli -h xxx -p xxx 是否能够访问
2. 重启redis容器,查看是否正常
3. 本机是否开启着redis进程, ps -ef|grep redis
4. 查看端口占用情况, lsof -i tcp:6379

 

nginx配置文件修改后,导致容器重启失败

通过 docker log 容器名 查看失败原因
如果是因为nginx config内容导致,可通过下面命令进行配置文件覆盖后重启容器来解决
docker cp saas-mac-laravleTest9084.conf 62d6f947b978:/etc/nginx/conf.d/

 

posted on 2020-12-02 15:12  爱吃柠檬不加糖  阅读(111)  评论(0编辑  收藏  举报

导航