天天看點

Docker的基本操作

基本概念

鏡像(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