容器可以说是镜像的实例
docker 启动
docker run
可以创建一个新的容器并运行一个命令。
sudo docker run --privileged -p 80:80 --name=tafanfly -v /root/workspace:/data -itd centos:7 /bin/bash
- --privileged: 给当前容器root权限
- -p : 端口映射
- --name : 为容器指定一个名称
- -v : 主机的目录 localpath 映射到容器的 /data
- -d :
后台运行容器
,并返回容器ID - -i/-t : 这两参数配对使用
- /bin/bash:以交互模式启动一个容器,在容器内执行/bin/bash命令
docker 执行命令
docker exec
可以在运行的容器中执行命令。
在容器 tafanfly中以交互模式执行容器内 /root/runoob.sh 脚本:
$ docker exec -it tafanfly /bin/sh /root/runoob.sh
在容器 tafanfly中开启一个交互模式的终端:
$ docker exec -i -t tafanfly/bin/bash
docker 其他操作
1, docker stop
来终止一个运行中的容器
2, docker start
命令来重新启动该容器
3, docker restart
会将运行容器终止然后在启动
4, docker ps
显示所有的运行中的容器, 加参数-a
则包括未运行的容器
5, docker attach
可以进入指定容器
6, docker rm
删除停止运行的容器, -f
可强制删除运行中的容器
7, docker export
导出容器
8, docker import
导入容器
Docker run 和exec和attach的区别
- attach: 开启一个和正在运行的进程
交互的终端
- exec: 是在运行中的容器中
执行一个命令
, bin/bash 打开交互终端, /bin/sh 可以执行shell脚本 - run:
创建一个容器
,并且要启动它,然后在其上运行一个进程