Docker第一課
——————————————————————運維實習生
一、Docker介紹
Docker的接口相當簡單,用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的代碼一樣。
二、Docker 與 vmvare 比較
三、入門
1.安裝
yum install docker -y(最簡單的方式)
2.基本docker命令
版本 docker version
搜索 docker search 關鍵字
啓動syatmctul start docker
開機自啓 systemctul enable docker
3.下載鏡像的方法
(1)docker pull 鏡像名
(2)docker load -i 本地下載好的鏡像路徑
3.1 修改docker源
有的網絡無法連接到docker官方站點或網速慢,可以改用阿里、網易等的docker源
vim /etc/docker/daemon.json
{
#推薦阿里鏡像
"registry-mirrors": [
"https://khec465u.mirror.aliyuncs.com"
]
}
4.查看已下載鏡像
docker images
5 .
運行鏡像
docker run -it 鏡像名字:TAG 命令
停止、開啓、重啓鏡像
docker stop/start/restart 鏡像id
比如:
docker run -d 鏡像 bash -c "while true;do echo hello word;sleep 1;done"
6.退出鏡像
exit
7 .從容器中讀取log
語法:docker logs 容器id或者名字
(docker ps 查看id_查看所有運行中的容器)
8.查看所有運行中的容器:
docker ps -a
9.殺鏡像
docker kill 鏡像id
10.無法打開鏡像
(1)手動開啓網絡轉發
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p 生效
11.刪除鏡像
docker rm id
二、做自己的鏡像images
1.docker鏡像製作
方法1. 根據當前鏡像的狀態做一個image:創建一個安裝apache的centos鏡像
使用 docker commit
docker run -it centos /bin/bash
yum install httpd -y
exit
docker commit 鏡像id 自定義名字
docker images
方法2.
通過 docker build 創建一個基於centos 的httpd web 鏡像
使用時需要使用dockerfile 文件自動製作image
docker有點像源碼編譯時 ./confidure 產生的Makefile
1.創建工作目錄
mkdir /docker_build
cd /docker_build
touch Dockerfile #make自動編譯時需要Makefile 文件,自動創建images時需要Dockerfile文件
2.編輯Dockerfile 文件
Dockerflie 用來創建一個自定義的image,包含了用戶指定的軟件依賴
vim Dockerfile
FROM 鏡像名稱
MAINTAINER 作者
RUN yum install httpd -y
ADD start.sh /usr/local/bin/start.sh
ADD index.html /var/www/html/index.html
將文件 拷貝到 容器目錄文件
3.創建 start.sh 腳本啓動httpd 和apache默認首頁index.html文件
cd /docker_build
echo "/usr/sbin/httpd -DFOREGROUND" >start.sh
相當於執行syatemctul start httpd
chmod a+x start.sh 加權限
創建首頁index.html
echo "docker image build test" > index.html
4.build 創建image
語法:docker build -t 父鏡像名:tag Dockerfile ./文件所在路徑
5.查看 docker images
三.發佈image
方法1.
導出到本地 docker save -o 名字.tar 鏡像名
從本地導入 docker load -i 路徑
方法2.
發佈到外網dockerhub(注意daemon.json)
1.docker註冊賬號
2.登錄docker docker login -u 用戶名 -p 密碼 -e郵箱
3.上傳docker push centos:httpd
4.下載docker pull 用戶名/鏡像名
方法3.阿里雲私有倉庫
四.docker 端口你映射
#把容器80映射到物理機
docker run -d -p 物理機80:容器80 鏡像名
查看端口 netstat -nltp |grep 80
現在相當於vm中的net模式
五.訪問正在運行的容器
看運行的容器
docker ps
docker exec -it 容器ID /bin/bash
創建index.html 測試
echo "lin" >index.html
瀏覽器訪問無痕模式
ip/index.html