關於docker的基本概念,請檢視docker + Gitlab CI 的持續整合(一)
一、安裝docker
docker 安裝教程很多, git地址 搜download有很多方式下載,這裡就不贅述了,同樣可以使用免安裝的包 安裝好以後檢查版本
docker version
複製程式碼
列印類似以下資訊,恭喜你,千里之行已經開始了第一步
[root@VM_0_12_centos ~]# docker version
Client:
Version: 17.05.0-ce
API version: 1.29
Go version: go1.7.5
Git commit: 89658be
Built: Fri May 5 15:36:11 2017
OS/Arch: linux/amd64
複製程式碼
二、啟動第一個容器
1、查詢需要的image(以nginx為例)
docker search nginx
複製程式碼
docker 市場上會有很多相關的image,沒有特殊需求的話,使用官方的即可
[root@VM_0_12_centos ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 9563 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1400 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 611 [OK]
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as... 405 [OK]
kong Open-source Microservice & API Management ... 224 [OK]
webdevops/php-nginx Nginx with PHP-FPM 113 [OK]
kitematic/hello-world-nginx A light-weight nginx container that demons... 108
複製程式碼
2、下載iamge
docker pull nginx
複製程式碼
nginx可以指定版本號,寫法為
docker pull nginx:版本號
複製程式碼
不指定的話預設為latest最新版本
3、檢視下載好的image
docker images
複製程式碼
[root@VM_0_12_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c82521676580 6 weeks ago 109MB
複製程式碼
4、啟動容器
docker run -d -p 80:80 --name nginx -v $PWD/dist/:/usr/share/nginx/html nginx
複製程式碼
- docker run 建立一個容器,裡面執行一個映象
- -d 容器能執行在後臺,即守護程式
- -p 將容器對外的埠與宿主機的埠做對映 此處訪問宿主機的80埠 其實就是訪問容器的80埠
- —name 容器的名字,不寫會自動生成隨機的名字
- -v 可以理解為容器路徑的對映,冒號前的宿主機的路徑、冒號後的為容器內的路徑,最終訪問的是容器內/usr/share/nginx/html下的內容,啟動容器時會自動從宿主機路徑下同步到容器內
- nginx 是 pull 好的image映象
5、檢視啟動的容器列表
docker ps
複製程式碼
[root@VM_0_12_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d94ee9b43d3 nginx "nginx -g 'daemon ..." 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp nginx
複製程式碼
此時訪問伺服器 ip 已經可以訪問了,只不過nginx的根目錄下沒有檔案,會提示nginx已經 ready
以上講了直接使用倉庫提供的映象,那麼怎麼製作自己的image呢?
三、製作映象
我們啟動一個node服務就需要製作,因為是基於node的image的 1、在需要製作image的專案根目錄建立Dockerfile檔案,這裡我們以node+koa的service專案為例 Dockerfile寫入內容如下
FROM node:latest
RUN mkdir -p /home/Service
COPY . /home/Service
WORKDIR /home/Service
EXPOSE 8000
RUN npm install
CMD ["npm","start"]
複製程式碼
- FROM 即基礎映象
- RUN 執行該命令
- COPY 複製當前的內容到 資料夾
- WOEKDIR docker的工作目錄
- EXPOSE 對外埠
- CMD 執行指令碼
2、在Dockerfile檔案所在目錄執行build命令
docker build -t testImage .
複製程式碼
build 完成即可用命令檢視image
docker images
複製程式碼
啟動一下看看
docker run -d -p 5000:8000 --name testimage testimage
複製程式碼
大家還可以關注我的部落格無聲的部落格