CoreOS 及 Docker

由於 docker 太多東西要學
先記錄一下進度

  • CoreOS 安裝 docker
  • Docker 基本指令
  • Image 選擇 - Apline
  • Docker-compose
  • Docker 建立 Nginx + Let's Encrypt + Proxy Server
  • Docker 設定 Ghost

什麼是 CoreOS?

就是一個 Container 專用的 Linux。在 DigitalOcean 或 Linode 也可以安裝 CoreOS,我就用 Linode $5 hosting 來開設一個。CoreOS 原生就支援 docker 在,基本上也預計你什麼東西都會用 docker 安裝,所以 apt-get 什麼的也是沒有的。
最基本來一個 docker -h指令,可以先看看 docker 有什麼指令可以用。

Management Commands:
  config      Manage Docker configs
  container   Manage containers
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

升級 CoreOS 的 docker 版本

第一次使用前記緊先升級一下 docker 的 version
在 CoreOS 裡使用 update_engine_client -update 指令
升級做最新版本的 docker

常用的 docker 指令

指令也有不少,不過我還只用最常用幾個指令就可以了。
docker search <image name> - 搜尋有什麼 docker image 可以用,當然到 Docker Hub 看也可以的。
docker pull <image name> - 把所需的 image 拉下來
docker images - 看看本機有什麼 image
docker run <image name> --name <container name> - 運行 container,ctrl + c 可以停止
docker run <container name> -d - 在背景運行 container,需要這樣才不會佔據你的 terminal
docker ps - 查看在運行的 container
docker ps -a - 查看所有 container (包括停用的 container)
docker stop <container name> - 停止 container
docker rm <container name> - 刪除 container
docker image rm <image name> - 刪除 image

CoreOS 用後感

在開始使用 CoreOS 後,幾乎學習使用 ubuntu 的一套也用不著,但理念還是一樣的,不過每次都用 docker run xxxx 的指令太煩人了,下回開始會使用 docker-compose 來將指令寫進檔案中使用。