閱讀171 返回首頁    go 京東網上商城


docker入門

Docker

簡介

  • Docker 是一個開源的應用容器引擎 理解為加強版虛擬機
  • 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機製,相互之間不會有任何接口。 ******************************************** ### 個人理解
  • docker中的容器是動態的,隨時創建和銷毀,隻有鏡像是持久化的
  • 而且容器是一個虛擬出來的功能完備的Linux操作係統可以進行登錄運行命令
  • docker images來得到所有的本地鏡像名,使用docker run --name {name} -d {image-name}以某容器來啟動某個鏡像
  • 然後docker ps查看運行狀況

docker安裝與卸載

通過deb文件方式來安裝:
  • 點擊選擇文件
  • 進去後選擇debain的版本,deepin15.4 的版本是stretch 然後pool/stable/amd64/選版本即可
  • 例如:Deepin 15.4直接點這裏 ###### 開始安裝
  • sudo dpkg -i deb文件
  • 測試安裝成功 sudo docker run hello-world
卸載docker
  • sudo apt-get purge docker-ce
  • sudo rm -rf /var/lib/docker

常規使用

  • 如果出現命令執行失敗,可以登錄docker的控製台直接執行 boot2docker ssh #### 鏡像命令
  • 搜索 : docker search 鏡像名
  • 安裝 : docker pull 鏡像名
  • 查看 : docker images
  • 刪除 :docker rmi image-id #### 容器命令
  • 運行:docker run --name conrainer-name -d image-name
    • --name 後配置容器名字
    • -d image 名字

Dockerfile使用

使用入門案例
  • 新建目錄然後 touch Dockerfile gedit Dockerfile #隨意寫的 FROM redis MAINTAINER Mythos ENV DIRPATH /path WORKDIR $DIRPATH/$DIRNAME RUN pwd
  • docker build . 如果之前得到一個沒有名字的鏡像
  • docker build -t repository/tag . 給鏡像指定名字
  • docker run --name ContainerName -d repository/tag 新建容器來運行鏡像

  • Dockerfile是一個鏡像的表示,可以通過Dockerfile來描述構建鏡像的步驟,且可以自動構建一個容器
  • 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments
  • 最好在運行這個配置文件的時候新建一個空目錄目錄下放dockerfile,不要使用根目錄,不然全部的東西都傳到守護進程裏去了
    • 因為生成過程的第一件事是將整個上下文 (遞歸) 發送到守護進程。
  • 同樣的可以使用.dockerignore文件來忽略不要上傳的文件
  • docker build
    • -f 指向任意位置的文件進行配置 docker build -f /path/to/a/Dockerfile .
    • 您使用docker構建的-f標誌指向文件係統中任何位置的Dockerfile。
    • -t如果構建成功 可以指定保存新鏡像的repository和tag (多個的話就多個 -t就行了,例如 docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .) #### RUN ### .dockerignore 文件的使用
  • .dockerignore文件是依據 Go的PathMatch規範來的,使用和.gitignore類似 ### 安裝 redis
  • 獲取鏡像:docker pull redis
  • 運行默認配置的容器:docker run --name test-redis -d redis
  • 使用本地配置文件啟動redis容器
  • sudo docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
  • 查看當前運行的容器:docker ps
    • 查看所有容器 :docker ps -a
  • 停止容器:docker stop 容器name或id
  • 啟動容器:docker start 容器name或id
  • port-redis容器的端口映射:sudo docker run -d -p 6379:6379 --name port-redis redis
  • 刪除容器:docker rm 容器id
    • 刪除所有容器:docker rm ${docker -a -q}
  • 容器日誌:docker logs 容器name或id
  • 登錄容器:docker exec -it 容器name或id bash

docker pull wnameless/oracle-xe-11g
docker pull mongo
docker pull cloudesire/activemq
docker pull rabbitmq
socker pull rabbitmq:3-management

最後更新:2017-05-03 21:49:06

  上一篇:go radix tree在數據庫PostgreSQL中的一些應用舉例
  下一篇:go 5月3日雲棲精選夜讀:乾隆會判阿爾法狗死刑嗎 ——淺談當前人工智能的技術進化