基本概念
镜像(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
参考
https://www.runoob.com/docker/docker-tutorial.html