docker 常用笔记

pull:下载镜像

docker pull image

ps:查看运行容器

docker ps

-a : 查看全部包括停止

commit:创建镜像

docker commit [repo] xxxname:tag

docker container commit -m "Add a new image" -a "lipengfei" 90cedf2ee4fe test:0.1

创建一名称为 test,tag为0.1 的镜像,容器id为90.....4fe

save:导出镜像

create/run : 创建/运行容器

-i:绑定输入

-t:伪终端

-d:后台运行(守护状态)

--rm 容器在终止后会立即删除

--name 别名

exec:运行交互页面

docker exec -it c3d277625d18  /bin/bash

exit: 退出交互页面

docker save -o /home/test/test.tar test:0.1

load:载入本地镜像

docker load -i /home/test/test.tar

push:上传

如果要分享可以push 一下,默认为官网的dockerhub,需要注册。

docker push [image]

容器:

pause/unpause:暂停容器

(子命令)stop/start/restart:停止/启动/重启

(子命令)prune:删除处于停止状态的容器

kill:强制关闭

rm:删除

-f 强制删除

-v 删除挂载的数据卷

容器导入导出:(*)迁移系统

export/import:

docker export -o xxxx.tar [container]

导入容器其实是导入镜像,可以给定标签

docker import xxxx.tar - [image-name]

stats:查看容器统计信息

docker stats

container cp:复制文件到容器目录下

docker container cp test.tar ub:/tmp/

port:端口映射

docker container port ub

dockerhub 仓库:官方很慢,网速可以的去官网

国内镜像:

阿里云、腾讯云

数据管理:

数据卷:创建

docker volume create test

-d 数据驱动,默认为local

数据卷容器:(推荐)

多个容器挂载数据卷容器,可以挂载多个数据卷

1.运行容器,创建一个dbdata数据卷

docker run -it -v /dbdata --name dbdata ubuntu

2.创建第二个容器,挂载数据卷容器的数据卷

docker run -it --volume-from dbdata --name db1 ubuntu

此时在任意容器中修改此数据卷信息,其他容器都可见。

删除数据卷:

docker rm -v XXX

备份数据卷:

docker run --name backupworker --volumes-from dbdata -v $PWD:/backup ubuntu tar cvf /backup/backup.tar /dbdata

分步骤看

1、run -name backupworker 创建一个ubuntu 容器

2、数据卷来自数据卷容器 dbdata

3、-v $pwd:/backup :绑定宿主机当前目录到容器根目录下文件夹 /backup

4、tar cvf /backup/backup.tar /dbdata :容器运行后执行此命令打包挂载的目录 /dbdata ,也就是之间的容器数据卷中的 /dbdata

5、此时因为容器的挂载了dbdata,所以在跟目录下同样会有一个 dbdata目录,同时把挂载的目录打包丢到根 backup 目录下,然后由于数据卷映射到宿主机当前目录下,所以backup 目录下的文件同样会保存到宿主机当前目录下。

端口映射:容器服务端口映射到主机的端口、ip

docker run -p [IP]8080:8000 -d xxxxx --name xxxxx

ip映射端口随机(双冒号)

docker run -p 127.0.0.0::5000 xxxxx

查看端口号:docker port xxxx

查看统计信息:docker stats xxxx

容器互联:

--link

docker run --link name:alias xxxx

查看日志:

sudo docker logs -f -t --tail 行数 容器名

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

例子:

查看指定时间后的日志,只显示最后100行:

$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

查看最近30分钟的日志:

$ docker logs --since 30m CONTAINER_ID

查看某时间之后的日志:

$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

查看某时间段日志:

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
原文地址:https://www.cnblogs.com/jony-it/p/11396354.html