一、 docker組成
- 鏡像
- 容器
- 倉庫
二、容器基本操作
-
啓動交互式容器
docker run -it image_name /bin/bash -i --interactive=ture | fasle 默認是false -t --tty=ture | fasle 默認是false
-
查看docker信息
docker info
-
查看容器
docker ps [-a][-l]
-
自定義容器名
docker run --name=自定義名 -it image_name /bin/bash
-
重新啓動已停止的命令
docker start [-i] 容器名
-
刪除停止的容器
docker rm 容器名
-
以守護形式運行容器
(1) docker run -it image_name /bin/bash (2) Ctrl+P+Q
附加到運行容器中
docker attach 容器名
啓動守護式進程
docker ru -d image_name [COMMAND][ARG]
-
查看容器日誌
docker logs [-f][-t][--tail] 容器名 -f --follows=ture|false 默認false -t --timestamps=ture|false 默認false --tail="all"
-
查看容器內進程
docker top 容器名
-
在運行中的容器中啓動新的進程
docker exec [-d][-i][-t] 容器名 [COMMAND][ARG]
示例:
docker exec -it dc1 /bin/bash
-
停止守護容器
docker stop 容器名 docker kill 容器名 stop會等待一段時間停止容器 kill 會直接停止容器
-
使用docker幫助文檔
man docker-run man docker-logs man docker-top man docker-exec
三、在容器中啓動靜態網站
-
設置容器端口映射
大寫P爲所有端口映射
小寫p爲指定容器端口映射 -
部署流程
a. cd /etc/nginx/sites-enabled/
b. vim default
c. 修改主頁路徑:
d. 啓動nginx: nginx
e. 查看狀態: ps -ef
f. 查看端口映射狀態:docker port daker-name
四、鏡像
-
列出鏡像:
docker images
-
鏡像完整id:
docker images --no-trunc
-
查看鏡像詳細信息:
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE ...]
-
刪除鏡像:
docker rmi [OPTIONS] IMAGE [IMAGE ...] -f --force=false Force removal of the image --no-prune-false Do not delete untagged parents
-
標籤和倉庫決定一個容器
-
查找驚像:
查找三星以上的倉庫:docker search -s 3 ubuntu
-
拉取鏡像
使用國內docker倉庫拉取鏡像:
在daocloud上獲取DOCKER_OPTS -
推送鏡像
docker login docker push 1576340464/blog_web
-
構建鏡像:
docker commit: 通過容器構建 docker build: 通過Dockerfile文件構建
docker commit:
docker commit -a "1576340464" -m "this is a uwsgi+nginx+django create web" 6c823f86634a 1576340464/blog_web
docker file:
-
用鏡像啓動一個容器
docker run -v /home/web:/home/web -p 8000:8000 -itd --name blog_web python:3.5
五、docker的C/S模式
-
docker的C/S模式 -----> Remote API
(1)連接docker的socket服務端: nc -U /var/run/docker.sock(2)請求服務端相關數據: GET /info HTTP/1.1
(3) 返回數據格式:
-
docker的C/S模式 -----> 連接方式
六、Docker守護進程的配置和操作
-
查看守護進程
-
Docker啓動選項
docker -d [OPTIONS]
-
查看docker啓動配置詳細信息
-
啓動配置文件
可修改docker文件
七、Docker的遠程訪問
-
環境準備
提示: 用label區別兩臺服務器 -
修改服務器端配置
-
使用兩種方式訪問另一臺docker服務xinxi
http訪問: curl http://10.211.55.5:2375/info tcp客戶端訪問: docker -H tcp://10.211.55.5:2375 info
-
修改客戶端配置