docker基本命令

 nadia     2019-06-25     3448     0   

欢迎来到银盒子的世界~

docker run -p5001(本地的端口):5000(docker里边的端口) -d --name mojigo-api3(可替换) 2a0e68b7f609(docker 打包成功的那个命令)

docker images 看docker打包的镜像有几个的

docker ps  看当前有几个成功启动的

docker ps -a 看历史有几个要启动的docker 没有成功启动的也算

dockerr stop 容器ID 停掉docker的

docker build -t mojigo-api:v4 . (这个好像是得在项目根目录下执行的)

docker logs --since 30m fa8447468fb0(docker的container id) 可以看启动的日志,比如哪错了之类的,这个是看30分钟内的log日志


docker -compose  不知道啥


记录一下,项目打包的流程,按照正常的打包流程,打包,然后进入这个镜像里,修改一些东西

图片.png

上图,CONTANER ID是run的docker的id,  IMAGE是用build命令打包的那个docker包的id,  一个项目,你先用build,根据dockerfile来打包成镜像文件,这个时候只有IMAGE ID,要查看自己的所有的镜像文件,用docker images命令来查看。然后你要启动一个镜像文件,就用docer run去运行IMAGE的id号,不管成功没成功,都会生成一个CONTAINER ID 号。docker ps是看运行起来的,docker ps -a是看启动过的

docker ps -a  列出所有run过的docker

docker exec -it CONTAINER ID  /bin/bash  这个是进入这个打包后的容器里边,往里边添加一些东西和修改一些东西,没有run起来的,进不去

exit   就是退出在这个docker

docker commit CONTAINER ID  这个是再次打包一下,打包完后,就可以运行了

顺便记录一下,进入容器后,上传文件,直接往xshell里拖,会报个错rz: command not found  解决方法  apt-get install lrzsz

怎么用dockerfile里的cmd 启动俩命令:


两个办法,一个是CMD不用中括号框起来,将命令用"&&"符号链接:

# 用nohup框起来,不然npm start执行了之后不会执行后面的CMD nohup sh -c 'npm start && node ./server/server.js'

另一个方法是不用CMD,用ENTRYPOINT命令,指定一个执行的shell脚本,然后在entrypoint.sh文件中写上要执行的命令:

ENTRYPOINT ["./entrypoint.sh"]

entrypoint.sh文件如下:

           
// entrypoint.shnohup npm start &
nohup node ./server/server.js &


图片.png


往harbor上推容器,提示错误:

图片.png


解决方法:

在/etc/docker下,修改daemon.json文件,写入:

{"insecure-registries":["你要推送的地址"]}

然后重启docker服务(systemctl restart docker)


部署时,有个坑:

http://yinhezi.top/post/71.html

解决方案是下边:

http://yinhezi.top/post/69.html

docker镜像文件里的日志,怎么保存在宿主机,因为,假如日志只写到容器里,容器关了,日志就没了。

docker run -p5001:5000 -d --name mojigo-apiv1.1.12_191113_BD -v /var/lib/docker/volumes:/opt/mojigo-api/mojigo_uwsgi 4eeac6cd18d5

(-v的参数,前边是宿主机的路径,后边是容器里的路径,都是写到文件夹就可以了,不需要写到具体的文件。然后uwsgi的配置文件写好按照文件大小切分日志。那容器里产生的日志文件,就会同步到宿主机的文件夹里,容器里的文件自动切分了,宿主机里的文件也会自动切分。这样就实现把日志数据持久化了)



一个经验,两个容器要是不能互通,多半需要关了防火墙



nohup python sever.py> ws.log 2>&1 &


https://www.cnblogs.com/S--S/p/11715694.html


docker服务关了,报错如下

图片.png

这个多半是服务器重启了,导致docker服务停了,如下操作就可

图片.png

systemctl daemon-reload

systemctl restart docker

图片.png


发表评论