Docker初體驗——踩過的那些坑!

2018‎年‎3‎月‎6‎日


Docker安裝web

環境:windows7docker

安裝包:DockerToolbox-17.10.0-ce.exe (下載地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)windows

centos

//啓動包錯:
Running pre-create checks...  
(default) No default Boot2Docker ISO found locally, downloading the latest release...  

//以後下載ISO 而後被牆。。。

緣由:其實這個報錯不須要下載最新ISO文件,而是Boot2Docker文件沒有放到正確的位置。瀏覽器

解決:複製安裝目錄下的boot2docker.iso到C:\Users\Administrator.Docker\machine\cache到這個目錄下。ui

this

//啓動報錯:
Error creating machine: Error in driver during machine creation:This computer doesn't have VT-X/AMD-v 
enabled. Enabling it in the BIOS is mandatory

緣由:BIOS沒有開啓虛擬化rest

解決:這時就要啓動BIOS的虛擬化設置 | 開啓CPU虛擬化支持。 重啓電腦後按F2或F10進入BIOS界面(不一樣主板型號進入BIOS所需按鍵不一樣)。 進入BIOS界面:Intel Virtualization Technology > Enabled。code


端口映射教程

環境:windows7(Linux下可能不存在這個問題)

//在docker下部署了web應用服務並進行了端口映射。部署完成後,在瀏覽器中輸入localhost:port沒法訪問對應的web服務

緣由:原來,docker是運行在Linux上的,在Windows中運行docker,實際上仍是在Windows下先安裝了一個Linux環境,而後在這個系統中運行的docker。也就是說,服務中使用的localhost指的是這個Linux環境的地址,而不是咱們的宿主環境Windows。

解決:輸入如下命令查找這個的Linux ip 使用這個ip地址加端口號(ip:port)訪問web應用,訪問成功。

#這個ip地址通常爲192.168.99.100
docker-machine ip default

2018‎年‎3‎月‎7‎日


環境:windows7

: 使用docker build 建立新景象,寫好Dockerfile後運行命令

$ docker build -t test/centos:6.7 .

#報如下錯誤

$ error checking context: 'can't stat '\\?\C:\Users\Administrator\AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application ...

緣由:Dockerfile保存位置不對。

解決:正確作法 建立dockerfiles文件夾並進入文件夾:

$ mkdir dockerfiles
$ cd dockerfiles

建立並編輯Dockerfile文件:

$ touch Dockerfile
$ vi Dockerfile

執行docker build 命令:

docker build -t test/centos:6.7 .

2018年3月8號


使用docker兩天的感覺:必定要看官網文檔(最好是英文),不要使用國內哪些所謂的教程!!!不要問我爲何???(坑太多。。。)


2018年3月9號


: 使用swarm 新建集羣時遇到雙網卡,未指定IP 報如下錯誤

Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (10.0.2.15 on eth0 and 192.168.99.100 on eth1) - specify one with --advertise-addr

緣由:因爲有兩個IP,集羣不知道使用哪一個因此報錯。

解決:解決方法報錯信息已經給出提示,使用--advertise-addr 指定IP

$docker swarm init --advertise-addr 192.168.99.100

: 使用 docker-compose.yml 運行docker 官網例子時報錯

$docker stack deploy -c docker-compose.yml getstartedlab

networks Additional property networks is not allowed
#相似錯誤
replicas Additional property replicas is not allowed
...

緣由:docker-compose.yml文件縮進不正確

官網版本

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

個人版本

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
        restart_policy: #縮進錯誤
          condition: on-failure #縮進錯誤
      ports: #縮進錯誤
        - "80:80" #縮進錯誤
      networks: #縮進錯誤
        - webnet #縮進錯誤
networks:
  webnet:

解決:修改縮進錯誤,從新運行命令,一切正常。

相關文章
相關標籤/搜索