Docker
(一)快速开始
1)在容器内运行一个应用程序
-
docker run
-
docker run ubuntu:15.10 /bin/echo “Hello world”
docker: Docker 的二进制执行文件。
run: 与前面的 docker 组合来运行一个容器。
ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo “Hello world”: 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。
-
2)交互式容器
-
-i -t
-
docker run -i -t ubuntu:15.10 /bin/bash
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
-
3)启动容器(后台模式)
-
-d
- docker run -d ubuntu:15.10 /bin/sh -c “while true; do echo hello world; sleep 1; done”
-
输出:长字符串
-
对每个容器来说都是唯一的
- 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
-
-
docker ps
-
确认在运行的容器
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称
-
-
docker logs
-
查看容器内的标准输出
- docker logs 2b1b7a428627
-
4)停止容器
-
docker stop
- docker stop 2b1b7a428627
(二)容器使用
2.1)获取镜像
-
docker pull
- 载入ubuntu镜像:docker pull ubuntu
2.2)启动容器
-
docker run -it ubuntu /bin/bash
- 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器
-
命名–name
- docker run -it --name runoob ubuntu /bin/bash
2.3)启动已停止运行的容器
-
docker ps -a
- 查看所有的容器
-
docker start 容器ID
- 使用 docker start 启动一个已停止的容器
2.4)后台运行
-
-d
- docker run -itd --name ubuntu-test ubuntu /bin/bash
2.5)停止运行
-
docker stop <容器 ID>
-
docker restart <容器 ID>
停止的容器可以通过 docker restart 重启
2.6)进入容器
-
docker attach <容器 ID>
- docker attach 1e560fca3906
-
docker exec <容器 ID>
- docker exec -it 243c32535da7 /bin/bash
2.7)导出和导入容器
-
导出容器
-
docker export 1e560fca3906 > ubuntu.tar
导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。
-
-
导入容器快照
-
docker import
-
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
-
docker import http://example.com/exampleimage.tgz example/imagerepo
也可以通过指定 URL 或者某个目录来导入
-
-
2.8)删除容器
-
docker rm -f <容器 ID>
-
docker container prune
- 清理掉所有处于终止状态的容器
2.9)运行一个web应用
- https://www.runoob.com/docker/docker-container-usage.html
(三)镜像使用
1)列出主机所有镜像
-
docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小 -
ubuntu:latest
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
2)获取一个新的镜像
-
docker pull <镜像名字:Tag>
- docker pull ubuntu:13.10
3)查找镜像
-
Docker Hub网站
- https://hub.docker.com/
-
docker search <镜像名字>
-
docker search httpd
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
-
4)拉取镜像
-
docker pull <镜像名字>
- docker pull httpd
5)运行镜像
-
docker run <镜像名字>
- docker run httpd
6)删除镜像
-
docker rmi <镜像名字>
- docker rmi hello-world
7)创建镜像
https://www.runoob.com/docker/docker-image-usage.html
- 方法一:从已经创建的容器中更新镜像,并且提交这个镜像
- 方法二:使用 Dockerfile 指令来创建一个新的镜像