容器 container
- 获取容器
docker pull ubuntu
- 导出容器
docker export 1e560fca3906 > ubuntu.tar
- 导入容器,从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
- 指定目录或url导入容器
docker import http://example.com/exampleimage.tgz example/imagerepo
- 删除容器
docker rm -f 容器id或name
docker rm $(docker ps -aq) 删除所有容器
- 查看正在运行的容器
docker ps
- docker ps -a
查看所有容器
- 启动停止运行的容器
docker start 容器id或name
- 挂载目录(重要)
# /e对应的就是window的e盘
docker run -itd -p 9528:9528 -v /d/work/bufan/student_manager_vue:/std node:12.16.1 /bin/bash
docker run -d -p 9528:9528 -v /d/work/bufan/student_manager_vue:/std node:12.16.1 /bin/bash
- 停止容器
docker stop 容器id或name
docker stop $(docker ps -aq) # 停止所有容器
- 重启容器
docker restart 容器id或name
- 查看某个容器日志
docker logs -f 容器id或name
- 进入容器进行交互模式(
-i -t
可以写为-it
)
docker run -i -t ubuntu:15.10 /bin/bash
- 后台模式运行容器
docker run -d ubuntu:15.10 xxx
- 在使用 -d 参数时,容器启动后会进入后台,此时想要进入容器,推荐大家使用 docker exec 命令,因为此命令退出容器终端时,不会导致容器的停止
docker exec -it 243c32535da7 /bin/bash
- 将内部的5000端口映射到外部的5001端口
docker run -d -p 5001:5000 training/webapp python app.py
- 查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
docker port id或name
- 查看指定容器的进程
docker top id或name
镜像 image
- 列出本机镜像
docker images
- 查询镜像
docker search xxx
- 删除镜像
docker rmi xxx
docker rmi $(docker images -q) 删除所有镜像
- 在已有容器上创建容器
docker commit -m="update" -a="sorry" e218edb10161 sorry/ubuntu:v2
-m: 提交的描述信息
-a: 指定镜像作者
e218edb10161:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
- 通过
Dockerfile
创建一个镜像
docker build -t sorry/test:0.1 .
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
- 给镜像打上标签
docker tag 镜像id sorry/test0.1:dev
地址端口映射
- 映射外部端口
docker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。
- 指定映射地址
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
- 指定连接类型,默认是tcp连接,可以加上udp参数
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
容器互联
- 新建网络
docker network create -d bridge test-net
-d:参数指定 Docker 网络类型,有 bridge、overlay。
- 运行一个容器并连接到新建的 test1 网络:
docker run -itd --name test1 --network test1 ubuntu:15.10 /bin/bash
网友评论