说明:按照官网教程做的操作,记录下来方便查找。
https://docs.docker.com/engine/installation/linux/ubuntulinux/
一
1.docker run ubuntu /bin/echo 'hello world' -->运行容器输出‘hello world’
2.docker run -t -i ubuntu /bin/bash -->运行交换容器(输入exit退出)
3.docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done" --> -d:运行后台进程
4.docker ps -->显示容器
5.docker logs -->显示容器的标准输出日志
6.docker stop ubuntu -->停止运行的容器
二
1.docker version -->查看版本
2.docker --help -->查看帮助文档
3.docker attach --help -->查看指定命令的文档
4.docker run -d -P training/webapp python app.py -->在后台运行并映射到主机端口(默认端口)
5.docker run -d -p 80:5000 training/webapp python app.py -->将本机80端口映射到后台容器5000端口
6.docker -machine ip vm_name -->查看ip(没运行成功)
7.docker port 容器名 容器后台端口 -->查看端口
8.docker logs -f 容器名 -->实时查看日志
9.docker top 容器名 -->查看应用进程
10.docker inspect 容器名-->查看容器配置(加‘-f’可以格式化获取指定部分内容)
11.docker start 容器名 -->启动应用
12.docker rm 容器名 -->移除应用(使用完要移除)
三创建自己的镜像
1.docker images -->查看本地镜像
2.docker run -t -i ubuntu:14.04 /bin/bash -->运行乌班图14.04。指定运行标签(tag)则运行指定标签的镜像,否则运行lastest版本,为了明确运行环境,推荐指定标签运行
3.docker pull centos -->获取指定的镜像
4.docker search 镜像名 -->搜索镜像
5.在原镜像做修改生成新镜像:
5.1docker run -t -i training/sinatra /bin/bash
5.2gem install json
5.3exit
5.4docker commit -m "备注" -a "作者"
6.用Dockerfile创建镜像
6.1mkdir sinatra
6.2cd sinatra
6.3touch Dockerfile
6.4在Dockerfile写入内容,格式:命令 语句
6.5docker build -t ouruser/sinatra:v2 . -->使用当前目录的Dockerfile创建镜像,可以指定其他位置的Dockerfile
7.docker tag 镜像id 镜像名称:标签 -->设置标签
8.docker push ouruser/sinatra -->上传镜像到Docker Hub
9docker rmi training/sinatra -->删除本地镜像
四容器网络
1.docker run -d -P -name web training/webapp python app.py -->指定容器名称运行
2.docker inspect web -->用名称查看容器信息
3.docker stop web -->用名称停止容器
4.docker rm web -->用名称移除
5.docker network ls -->查看网络,默认有三个
6.docker run -itd --name=networktest ubuntu -->连接到网络
7.docker network inspect bridge -->查看网络配置
8.docker network disconnect bridge networktest -->断开网络
9.docker network create -d bridge my-bridge-network -->创建一个桥接网络(桥接网络只有一个主机,覆盖网络可以有多个主机)
10.docker network connect my-bridge-network web -->连接到自定义网络
11.docker exec -it db bash -->在容器中执行命令
ping web -->测试网络连接
五.管理容器数据
1.docker run -d -P --name web -v /webapp training/webapp python app.py --> -v参数在/webapp目录创建数据卷,-v参数可以重复使用
2.docker inspect web -->查看卷的位置(Mounts字段)
3.docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py -->将主机中/src/webapp目录挂载到容器/opt/webapp目录(主机目录可以是绝对路径或者卷名称,容器目录必须是绝对路径)
4.docker run -d -P --name web -v /src/webapp:opt/webapp:ro training/webapp python app.py --> :ro表示挂载只读卷(默认是读写,另,不能在Dockerfile挂载主机目录,会找不到路径)
5.docker run -d -P --volume-driver=flocker -v my-named-volume:/opt/webapp --name web training/webapp python app.py -->在容器中创建命名的卷,用flocker卷驱动(需另外安装插件)
或者 5.1.docker volume create -d flocker --name my-named-volume -o size=20GB
5.2.docker run -d -P -v my-named-volume:/opt/webapp --name web training/webapp
6.docker run --rm -it -v ~/.bash_history:/root/.bash_history ubuntu /bin/bash -->挂载文件
7.docker create -v /dbdata --name dbstore training/postgres /bin/true -->创建数据容器卷
8.docker run -d --volume-from dbstore --name db1 /training/postgres -->可以链式挂载容器卷
9.docker run --rm -volume-from dbstore -v $(pwd):backup ubuntu tar cvf /backup/backup.tar /dbdata -->关闭容器时自动备份
10.docker run -v /dbdata --name dbstore2 ubuntu /bin/bash -->重新挂载
11.docker run --rm -v /foo -->移除卷