docker基本命令
docker run -d -p 80:80 --name webserver nginx 運行容器並起別名
docker ps 展示目前啟動的容器
docker ps -a 展示所有容器
docker start 啟動容器
docker stop 停止容器
docker rm -f webservr 停止並刪除容器,但不會刪除鏡像
docker images 顯示本地擁有的鏡像
docker rmi nginx 刪除本地images
創建自己的docker鏡像
編輯Dockerfile文件,填入以下內容:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
運行以下命令創建名為docker-whale的鏡像:
docker build -t docker-whale .
- -t: 給tag命令
- .: Dockerfile文件所在路徑
docker tag push pull
docker tag 8e15421920b1 xulingfeng/docker-whale:latest
上傳操作
docker push xulingfeng/docker-whale
下載操作
docker pull centos
交互式的操作
docker run -t -i ubuntu /bin/bash
- -t 分配了一個終端在新的容器中
- -i 允許你和容器進行交互操作
- /bin/bash 啟動容器中的Bash shell
docker的守護狀態,也就是后台運行
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
- docker run 運行容器
- -d 讓容器在后台運行
- ubuntu 你希望運行容器的鏡像
查看docker容器運行日志
docker logs -f 容器名
- -f 類似與 tail -f
使用docker運行web應用
docker run -d -P training/webapp python app.py
- -d:代表后台運行該容器
- -P:映射容器中的web應用端口號到你的主機上32768-61000中的某一個端口。這樣你可以訪問該容器中的web應用
- training/webapp: 一個已經構建好的鏡像,包含一個簡單的python flask框架web應用
- python app.py:這個命令用來啟動容器中的web
成功運行以上命令后,運行:
docker ps
查看到容器的5000端口號映射到了本地的32768,瀏覽器訪問http://127.0.0.1:32768 看到helloworld 成功提示
自定義主機端口號
docker run -d -p 80:5000 training/webapp python app.py
- -p 80:5000 將本機的80端口綁定容器內的5000端口,本地直接訪問 http://127.0.0.1 即可
查看容器的進程
docker top 容器名
檢查容器的狀態信息
docker inspect 容器名
鏡像搜索
docker search 內容
創建一個給pycharm開發用的鏡像,包含python3,Django, Flask, requests, PyMySQL, ldap3, jira,celery, simplejson
centos鏡像,分解步驟如下
首先添加額外源
yum install -y epel-release
安裝編譯環境
yum install -y gcc automake autoconf libtool make gcc-c++
安裝wget命令
yum install -y wget
安裝openssl-devel python的pip命令依賴
yum install -y openssl-devel
下載python3.5.2最新包
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz -P /software/
解壓python3.5.2壓縮包並編譯安裝
tar -zxvf /software/Python-3.5.2.tgz -C /software/
./configure && make -j2&& make install -j2
更新pip
pip install --upgrade pip
pip install --upgrade setuptools
安裝所需的第三方包
pip install Django Flask requests PyMySQL ldap3 jira celery simplejson
通過Dockerfile構建鏡像
Dockerfile:
FROM centos:latest
RUN yum install -y epel-release
RUN yum install -y gcc automake autoconf libtool make gcc-c++
RUN yum install -y wget
RUN yum install -y openssl-devel
RUN wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz -P /software/
RUN tar -zxvf /software/Python-3.5.2.tgz -C /software/
RUN cd /software/Python-3.5.2/ && ./configure python3 && make -j2&& make install -j2
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install Django Flask requests PyMySQL ldap3 jira celery simplejson
在Dockerfile目錄中執行:
docker build -t 名字:版本 .
兼容docker for mac 和 pycharm
brew install socat
socat TCP-LISTEN:2376,reuseaddr,fork,bind=127.0.0.1 UNIX-CLIENT:/var/run/docker.sock