基本概念
镜像(Image):静态的定义
容器(Container):镜像运行时的实体
仓库(Repository):保存镜像
一、Hello World
1、容器内运行一个应用程序
docker run ubuntu /bin/echo "Hello world"
参数:
run: 运行一个容器
ubuntu: 镜像,如果本地不存在,就会从仓库下载
/bin/echo “Hello world”: 容器里执行的命令
2、运行交互式的容器
# -t: 终端, -i: 允许交互 $ docker run -i -t ubuntu /bin/bash # 系统的版本 $ cat /proc/version # 文件列表 $ ls # 退出容器 $ exit
3、后台模式
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" # 查看运行的容器 $ docker ps # 查看日志 $ docker logs -f <id/name> # 停止容器 $ docker stop <id/name>
二、Docker 容器使用
# 查看帮助 docker # 查找镜像 docker search <name> # 拉取镜像 docker pull ubuntu # 删除镜像 docker rmi <id/name> # 以命令行模式进入该容器,退出终端 exit docker run -it ubuntu /bin/bash # 查看所有容器 docker ps -a # 最后一次创建的容器 docker ps -l # 启动容器 docker start <id/name> # 停止容器 docker stop <id/name> # 重启容器 docker restart <id/name> # 后台运行 docker run -itd --name ubuntu-test ubuntu /bin/bash # 进入终端 exit退出终端会导致容器停止 docker attach ubuntu-test # 进入终端 exit退出终端容器不会停止 docker exec -it ubuntu-test /bin/bash # 导出容器 docker export ubuntu-test > ubuntu.tar # 导入容器快照 cat ubuntu.tar | docker import - test/ubuntu:v1 # 使用url导入快照 docker import http://example.com/exampleimage.tgz example/imagerepo # 删除容器,容器必须是停止状态 $ docker rm -f <id/name> # 清理掉所有处于终止状态的容器 docker container prune # 查看端口映射 docker port <id/name> # 查看容器内部运行的进程 docker top <id/name> # 查看底层信息 docker inspect <id/name>
三、运行Redis
# 端口映射 主机端口6378->容器端口6379 hostPort:containerPort docker run -itd --name my-redis -p 6378:6379 redis # 随机映射 docker run -itd --name my-redis -P redis # 进入容器 docker exec -it my-redis /bin/bash # 容器内访问 $ redis-cli # 主机访问 $ redis-cli -p 6378