bayaim——聽課筆記_01.Docker基礎應用 10課.txt


===========2019年8月5日18:39:06====================
10.20.100.21
root
bayaimmysql

==========01-Docker介紹===================
docker -- go 語言編寫
一次運算,處處運行
只能 運行在linux 64位系統linux

docker 組成: (後臺進程)
1.鏡像(image)
2.容器(container)
3.倉庫(repository)
docker 和 openstack 對比 nginx

========02-Docker應用場景===================
1.簡化配置 (構建一次就好)
2.提升開發效率
3.應用的隔離
4.服務器的整合
5.多租戶環境下使用
6.快速的部署
7.代碼流水線管理
8.開發調試的工做
微服務

==========03-Docker鏡像和容器===================c++

 

docker search httpd //查找鏡像
docker pull 鏡像名稱:鏡像版本號 //從docker官方鏡像倉庫下載鏡像
docker pull mysqlsql

------------------------------------------------------------------------
docker run -i -t centos /bin/bash 在容器裏啓動一個/bin/bash shell環境,能夠登陸進入操做,其中-t 表示打開一個終端的意思,-i表示能夠交互輸入。
docker run -d -i -t centos /bin/bash 在後臺啓動
docker run -d centos:v1 /bin/bash ,-d表示在後臺啓動,以daemon方式啓動。
docker run -d -p 80:80 -p 8022:22 centos:latest /usr/bin/sshd -D
docker run -d --name mynginx nginx
docker run -d -i -t --name myubuntu ubuntu /bin/bash docker

docker exec -it 容器名稱 /bin/bash //進入容器內部shell


docker ps -a | grep nginx
docker ps //查看運行的容器
docker ps -a //查看全部的容器
docker ps -l 命令得到最後一個容器的id,docker ps -a查看全部的容器ubuntu

docker start 容器名稱 //啓動容器
docker stop 容器名稱 //中止運行的容器
docker restart 容器名稱 //重啓容器centos

docker inspect 容器名稱 //查看容器詳細
docker logs -f --tail=100 容器名稱 //查看容器日誌並指定日誌行數爲100bash

docker rm 容器名稱 //刪除容器 --必須中止容器才能刪除容器
docker rmi 鏡像名稱:鏡像版本號 //刪除鏡像 --必須刪除容器才能刪除鏡像


yum install -y util-linux
docker ps -l
docker inspect --format "{{.State.Pid}}" mynginx

這裏有報錯「mesg: ttyname failed: No such file or directory」 ,,
解決方法是在 nsenter 指令後面指定一個執行的shell,, /bin/bash
[root@devdtt ~]# nsenter --target 11950 --mount --uts --ipc --net --pid /bin/bash


#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target "$CPID" --mount --uts --ipc --net --pid /bin/bash

docker exec -it 容器名稱 /bin/bash //進入容器內部

-----------訪問-----ip 技術

apt-get update
apt-get install iputils-ping
apt install net-tools

隨機映射: -P (大寫P) docker run -P -d --name mynginx1 nginx
指定端口: -p (小寫) docker run -d -p 91:80 --name mynginx2 nginx


==========05-Docker 的數據管理===================

數據卷

docker run -it --name volume-centos -h nginx -v /data centos

docker inspect 容器名稱 //查看容器詳細
數據卷容器
docker inspect -f {{.Volumes}} volume-centos
docker inspect -f {{.Config.Volumes}} volume-centos

docker inspect volume-centos | grep Mounts -A 10

docker run -it --name volumes-test2 -h nginx -v /opt:/opt centos


============06-Docker鏡像構建-手動構建===================

docker exec -it 容器名稱 /bin/bash //進入容器內部

yum install -y wget gcc gcc-c++ make openssl-devel

yum -y install pcre-devel

wget http://nginx.org/download/nginx-1.17.2.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

tar zxf nginx-1.17.2.tar.gz
useradd -s /sbin/nologin -M nginx

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre


vi /etc/rc.local
/usr/local/nginx/sbin/nginx
vi /usr/local/nginx/conf/nginx.conf
daemon off;

docker commit -m "my nginx" 34cc2130e40d baipy/my-nginx:v1
docker images
docker run -d -p 99:80 baipy/my-nginx:v2 /usr/local/nginx/sbin/


============07-Docker鏡像構建-Dockerfile===================

dockerfile
docker build -t
Dockerfil

from
maintainer
run
add
workdir
volume
expose

============08-Docker核心原理-資源隔離和限制===================
LXC linux 的容器技術 kernel namespace

docker pull registry
namespace
pid
資源隔開


============09-Docker核心原理-網絡和Registry============

host 模式

相關文章
相關標籤/搜索