本文内容来自《第一本Docker书》的观后个人总结
1.基础语句
docker pull
从docker-hub拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
例 : 拉取官方的centos7版本的centos镜像
docker pull centos:centos7
docker images
查看当前docker本地的所有镜像
docker run
以一个镜像构建一个容器并执行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS : 选项
COMMAND : 执行容器时附带的命令
ARG : 镜像程序的执行配置参数
例 : 现有一个 centos:centos7 镜像
docker run -i -t --name centos7-demo centos:centos7 "/bin/bash"
-i : 保证容器中开启STDIN
-t : 让docker给容器分配一个伪tty终端,可以让我们实现交互
--name : 给容器一个别名, centos7-demo(默认是随机拼接词语)
centos:centos7 : 镜像名
"/bin/bash" : 执行容器附带语句,执行当前docker命令后,会进入到centos的控制台页面
额外 :
-d : 执行容器并在后台运行
-p : 指定端口, 例 :
-p 80 把容器的80端口映射到docker宿主机的49153~65535中随机一个端口
-p 8080:80 把容器的的80端口映射到宿主机的8080端口
-p 8081:8080/udp 把容器的8080端口以udp协议映射给主机的8081接口(默认是tcp协议)
-P : 将dockerfile里面EXPOSE的接口都与宿主机进行映射
-v : 指定卷,为docker提供持久化和共享功能,例:
-v /home/software/config:/usr/config 宿主机的/home/software/config目录作为卷,挂在到容器内
在目标目录的后面添加:rw或:ro,可以指定目标目录的读写状态,例-v /home/config:/usr/config:ro
--volumes-from : 将目标容器的卷和当前启动容器共享
--link : 把目标容器的ip地址加入到当前启动容器的host中,例 : --link redis:redis
-h : 指定主机名
--restart=always : 容器自动重启
--restart=on-failure:n : 当容器退出时的代码非0时,尝试最多n次重启
tips: [OPTIONS]内的单横线缩写参数可以组合,例 : -i -t = -it
docker attach
附着到容器的主进程上
docker attach [OPTIONS] CONTAINER
例 :
docker attach centos7-demo
如果容器还是启动状态,可以回到主线程的会话
docker exec
在容器另起一个新进程,执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
例 :
docker exec -it centos7-demo "/bin/bash"
开启一个新的进程并以前台交互形式执行
或者
docker exec -d centos7-demo "COMMAND "
开启一个后台式进程,执行指定指令
docker logs
获取容器日志
docker logs [OPTIONS] CONTAINER
这个docker命令有类似tail -f 的使用方法,例 :
docker log --tail 10 -f -t centos7-demo
–tail 10 -f : 显示最后十行,并实时更新显示
-t : 显示时间戳
docker top
查看容器内进程
docker top CONTAINER [ps OPTIONS]
例 :
docker top centos7-demo
docker start
启动容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
例 :
docker start centos7-demo
docker stop
终止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
例 :
docker stop centos7-demo
docker rm
删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
例 :
docker rm centos7-demo
删除指定镜像构建的所有容器
docker rm $(docker ps -a | grep IMAGE | awk '{print $1}')
docker rmi
删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
例 :
docker rm centos:centos7
删除<none>镜像
docker rmi $(docker images -f 'dangling=true' -q)
docker inspect
查看docker容器或是镜像信息
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
例 :
docker inspect centos7-demo
使用-f或–format参数可以获取指定信息
docker inspect -f '{{ .State.Running }}' centos7-demo
获取centos7-demo容器的运行状态
docker login
登陆自己的docker hub账号
docker login [OPTIONS] [SERVER]
username : 这里的用户吗是用户昵称,不是账号邮箱
password :
docker commit
提交一个自己镜像(通常已一个现成的容器为基础)
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
比如提交一个带有vim的centos镜像,例 :
docker commit -m=" A custom centos with vim" --author="yuuma" \
centos7-demo3 zhangsan/mycentos7:1.0.0
-m : 提交的附带信息,就像git commit的message
--author : 作者
centos7-demo3 : 提交的容器名(或是id)
zhangsan/mycentos7:1.0.0 : 仓库所属/仓库名:版本号
docker build
通过Dockerfile构建镜像
docker build [OPTIONS] PATH | URL | -
例;
docker build -t="zhangsan/mycentos7:1.0.0" /home/dockerfiles/my-centos/
Dockerfile文件路径可以为git仓库路径
更多Dockerfile相关知识点,可以查阅:Dockerfile相关知识个人总结