docker安裝、倉庫以及映象製作
阿新 • • 發佈:2018-12-26
docker安裝
linux下的安裝
- 系統:CentOS7.x
核心:3.10及以上的kernel核心版本
可以通過uname -r檢視$ uname -r
安裝:
兩種安裝方式
- 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 - 指令碼安裝
1.更新yum包
$ sudo yum update
2.執行docker安裝指令碼
$ curl -fsSL
3.執行docker後臺程序
$ sudo service docker start
4.檢測docker是否正確安裝
$ sudo docker run hello-world
- yum安裝
windows下的安裝
- 系統:window10個人版或者64位企業版
安裝:
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