docker学习笔记

说明:按照官网教程做的操作,记录下来方便查找。

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 -->移除卷

你可能感兴趣的:(docker,学习docker)