1. 程式人生 > >docker安裝、倉庫以及映象製作

docker安裝、倉庫以及映象製作

docker安裝

linux下的安裝

  1. 系統:CentOS7.x
  2. 核心:3.10及以上的kernel核心版本
    可以通過uname -r檢視

    $ uname -r

  3. 安裝:

    兩種安裝方式

    1. yum安裝
      1.更新yum包
      $ sudo yum update
      2.新增yum倉庫
      $ sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF’
      [dockerrepo]
      name=Docker Repository
      baseurl=https://yum.dockerproject.org/repo/main/centos/7/

      enabled=1
      gpgcheck=1
      gpgkey=https://yum.dockerproject.org/gpg
      EOF
      3.安裝docker包
      $ sudo yum install docker-engine
      4.執行docker後臺程序
      $ sudo service docker start
      5.檢測docker是否正確安裝
      $ sudo docker run hello-world
    2. 指令碼安裝
      1.更新yum包
      $ sudo yum update
      2.執行docker安裝指令碼
      $ curl -fsSL
      https://get.docker.com/
      | sh
      3.執行docker後臺程序
      $ sudo service docker start
      4.檢測docker是否正確安裝
      $ sudo docker run hello-world

windows下的安裝

  1. 系統:window10個人版或者64位企業版
  2. 安裝:

    1.雙擊InstallDocker.msi來執行docker安裝程式,一直點選完成即可
    如果沒有InstallDocker.msi檔案可以在這裡獲取
    2.啟動docker
    通過docker quick start terminal啟動

docker倉庫

倉庫伺服器

拉下官方的registry映象,並啟動映象

$ docker pull registry
$ docker run -d -p 5000:5000 registry

docker客戶端

1.修改docker配置檔案如下

$ vi /var/lib/boot2docker/profile

新增–insecure-registry 192.168.1.26:5000
這裡寫圖片描述

2.重啟docker服務

$ /etc/init.d/docker restart

3.修改要提交映象名稱
如果本次倉庫伺服器ip和埠號分別為192.168.1.8:5000
則映象名修改命令如下

$ docker tag test:latest  192.168.1.8:5000/znms:v1
$ docker push 192.168.1.8:5000/znms:v1

下載倉庫映象

$ docker pull 192.168.1.8:5000/znms:v1

製作docker映象

通過容器製作docker映象

$ docker commit 容器id 映象名稱

通過Dockerfile製作docker映象

編寫Dockerfile檔案

$ vim Dockerfile

檔案內容如下

FROM znms:v1                            #製作映象所需的基礎映象
MAINTAINER "zhenping" <[email protected].cn>  #維護者名稱
WORKDIR /root                           #切換工作目錄為root
ADD init.sh /root/                      #把宿主機當前目錄下的
                                        #init.sh檔案新增到映象的
                                        #root目錄中
EXPOSE 80                               #暴露埠
EXPOSE 3306
EXPOSE 514
EXPOSE 69
EXPOSE 22
EXPOSE 23
ENV LANG en_US.UTF-8                    #修改映象環境變數
VOLUME /var/www/html/cacti              #新增對外的掛載目錄
CMD ["sh","init.sh"]                    #映象每次啟動時都會執行
                                        #init.sh指令碼

編寫init.sh啟動指令碼

$ vim init.sh

init.sh指令碼內容如下(下面是目前znms需要開機啟動的服務):

#!/bin/bash
service crond start
service snmpd start
service mysqld start
#sed是為了讓容器啟動時候根據環境變數中的REMOTE_HOST來配置php除錯服務
sed -i '2000c xdebug.remote_host='$REMOTE_HOST'' /usr/local/php5/etc/php.ini
service php-fpm start
service httpd start
service rsyslog start
service xinetd start
service sshd start
#tailf命令是為了讓容器一直有任務執行,否則容器會stop
tailf /var/www/log/error.log

docker常用命令

常用命令列表

作用 命令
啟動docker服務 1.service docker start
2.如果沒有docker服務的話執行/etc/init.d/docker restart
關閉docker服務 上述命令中的start修改為stop即可
獲取映象 docker pull 映象名稱
提交映象 docker push 映象名稱
(符合規範為倉庫地址:埠號/倉庫名:版本號) 例如:192.168.1.8:5000/znms:v1
以指定映象執行容器 docker run
-i 保持標準輸入開啟
-d 以後臺程序模式重啟容器
-p 指定容器暴露埠在宿主機上所對埠
-v 指定容器的掛載目錄
-e 指定容器的環境變數
–restart=always 指定docker服務啟動時總是啟動容器
啟動容器 docker start 映象名稱
-a 待完成
-i 啟動一個容器並進入互動模式;
-t 10 停止或者重啟容器的超時時間,超時後系統將殺死程序。
關閉容器 docker stop 映象名稱
重啟容器 docker restart 映象名稱
-a 待完成
-i 重啟啟動一個容器並進入互動模式;
-t 10 停止或者重啟容器的超時時間,超時後系統將殺死程序。
-d 以後臺程序模式重啟容器
列出所有映象 docker images
列出所有容器 docker ps
-a 列出所有容器(含沉睡容器);
刪除映象 docker mi 映象名稱
刪除容器 docker rm 容器id(可以通過docker ps查詢)
進入容器 docker exec -ti 容器id(可以通過docker ps查詢) /bin/bash
退出容器 exit
通過容器建立映象 docker commit 容器id 建立映象名稱(映象名:tag)例如znms:v1
通過Dockerfile建立檔案 進入到Dockerfile所在目錄,
執行docker build -t 映象名 .
所執行命令的點不可缺少,代表當前目錄
修改映象名稱 docker tag 映象名稱 要修改成的映象名稱

docker start命令補全

$ docker run -i -d -p 1880:80 -p 13306:3306 -p 122:22 -p 123:23 -p 69:69/udp -p 514:514/tcp -v /Users/apple/znms/03_code/trunk/z-nms:/var/www/html/z-nms -e "REMOTE_HOST=除錯ip地址" --restart=always znms:v1