1. 启动一个容器并且进入到容器内部
1. 例如: 启动mysql 容器并且进入到容器内部
docker run -it mysql /bin/bash
[root@basenode ~]# docker run -it mysql /bin/bash
root@5d4637ebbc2d:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@5d4637ebbc2d:/#
2. 交互式命令
2.1 前台交互式启动
docker run -it mysql:latest
2.2 后台守护式启动
docker run -d mysql:latest
3. 查看容器的日志
doicker logs 容器id
4. 查看容器内部运行的进程
docker top 容器id (5d4637ebbc2d)
5. 查看容器内部细节
docker inspect 容器ID
6. 进入正在运行的容器并以命令行交互
6.1 docker exec -it 容器ID bashShell
例如,进入mysql: docker run -it mysql /bin/bash
docker exec -it 4e24002bbc34 /bin/bash
6.2 重新进入docker attach 容器ID
docker attach 5d4637ebbc2d
6.3 两者的区别
1.attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
2.exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
7. 从容器内拷贝文件到主机
docker cp 容器ID:容器内路径 目的主机路径
8. 容器的导出 和导入
8.1 容器的导出
docker export 容器ID > 文件名.tar
8.2 容器的导入
镜像用户 可以写root
镜像名称: 起一个有意义的名称
镜像版本号:随便写
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
9.common 命令提交容器副本成为一个新的镜像
***********************************************数据卷
10 数据卷
容器和宿主机的映射
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
例如:
docker run -it --privileged=true -v /opt/tmp/mydaockertomcat:/usr/local/tomcat/webapps --name wudltomcat02 tomcat:7
10.1容器实例内部被限制,只能读取不能写
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
10.2 容器的继承
1. 先启动容器并且起图个名字:
2.docker run -it --privileged=true -v /opt/tmp/mydaockertomcat:/usr/local/tomcat/webapps --name wudltomcat02 tomcat:7
2. 继承容器 u1 docker run -it --privileged=true --volumes-from 父类 --name u2
3. docker run -it --privileged=true --volumes-from wudltomcat02 --name wudltomcat03 tomcat:7