基本概念
鏡像(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