docker 菜鳥教程(docker快速入門)
關於 Docker 的一些概念和操作,我爭取這一篇部落格說完。下面正文開始。
Docker 映象與容器
說到 Docker ,你會常遇到兩個內容:image 和 container (即映象和容器) 關於映象和容器,你可以這樣來理解:映象是構建 Docker 的基石,使用者基於映象來執行自己的容器。或者說,映象是 Docker 生命週期中的構建或打包階段,而容器則是啟動或是執行階段。好吧,說的再明白點兒,就是有了映象,才有的容器。容器是在映象的基礎上,才有的。
Docker 安裝
以前寫過,這裡就不贅述了,直接上鍊接:需要科學上網的安裝方法:[Docker]CentOS7下Docker安裝教程不需要科學上網的安裝方法:[Docker]CentOS7通過rpm包安裝Docker
Docker 相關命令
Docker 操作相關命令:
systemctl start docker啟動 docker
systemctl status docker檢視 docker 狀態
systemctl stop docker停止 docker
systemctl enable docker開機自啟
docker info 檢視 docker 概要資訊
docker --help檢視 docker 幫助文件
映象相關命令:
檢視映象命令:
docker images
搜尋映象:
docker search 映象名稱
拉取映象:[Docker]Docker拉取,上傳映象到Harbor倉庫刪除映象:[Docker]如何批量刪除映象
容器相關命令:
檢視容器:檢視正在執行的容器:
docker ps
檢視所有容器:
docker ps -a
檢視最後一次執行的容器:
docker ps -l
檢視停止的容器:
docker ps -f status=exited
建立容器:
docker run
可以在 run 後面加引數。其中:
-i 表示執行容器
-t 表示容器啟動後進入其命令列
--name 為建立的容器命名
-v 表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄)
-d 在 run 後面加上 -d 引數,則會建立一個守護式容器在後臺執行
-p 表示埠對映,前者是宿主機埠,後者是容器內的對映埠
互動式方式建立容器
docker run -it --name=容器名稱 映象名稱:標籤 /bin/bash
守護式方式建立容器
docker run -di --name=容器名稱 映象名稱:標籤
登入守護式容器方式
docker exec -it 容器名稱(或容器 ID) /bin/bash
啟動容器:
docker start 容器名稱(或容器 ID)
停止容器:
docker stop 容器名稱(或容器 ID)
檔案拷貝:
將檔案拷貝到容器內
docker cp 需要拷貝的檔案或目錄 容器名稱:容器目錄
將檔案從容器內拷貝出來
docker cp 容器名稱:容器目錄需要拷貝的檔案或目錄
目錄掛載:
在建立容器時,將宿主機的目錄與容器內的目錄進行對映,這樣可以通過修改宿主機某個目錄的檔案從而去影響容器 建立容器 新增 -v 引數 後邊為 宿主機目錄:容器目錄,完整命令:
docker run -v 宿主機目錄:容器目錄
如果共享的是多級目錄,可能會出現許可權不足的情況 可以通過新增引數 --privileged=true 來解決,因為 CentOS7 中安全模組將 selinux 許可權禁掉了,新增此引數,可以將問題解決。
檢視容器 IP:
docker inspect 容器名稱(容器 ID )
也可以直接輸出 IP 地址:
docker inspect --format='{{NetworkSetting。IPAddress}}' 容器名稱(容器 ID)
刪除容器
docker rm 容器名稱(容器 ID)
常見的應用部署
MySQL 部署:
1 ,拉取映象:
docker pull centos/mysql-57-centos7
2 ,建立容器:
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
其中:-p 代表埠對映,格式為 宿主機對映埠:容器執行埠 -e 代表新增環境變數 MYSQL_ROOT_PASSWORD 是 root 使用者的登入密碼 3 ,進入 mysql 容器:
docker exec -it mysql /bin/bash
4 ,登入 mysql :
mysql -u root -p
tomcat 部署:
1 ,拉取映象
docker pull tomcat:7-jre7
2 ,建立容器
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/webapps tomcat:7-jre7
Nginx 部署:
1 ,拉取映象
docker pull nginx
2 ,建立 nginx 容器
docker run -di --name=mynginx -p 80:80 nginx
Redis 部署:
1 ,拉取映象
docker pull redis
2 ,建立 redis 容器
docker run -di --name=myredis -p 6379:6379 redis
遷移與備份
容器儲存為映象:
docker commit 容器名稱 映象名稱
例:
docker commit mynginx mynginx_i
將映象儲存為 tar 檔案,例:
docker save -o mynginx。tar mynginx_i
映象恢復與遷移:-i 輸入的檔案,例:
docker load -i mynginx。tar
Dockerfile
Dockerfile 是由一系列命令和引數構成的指令碼,基於基礎映象,最終建立一個新的映象,常用命令有:
FROM image_name:tag 定義了使用哪兒個基礎映象啟動構建流程
MAINTAINER user_name宣告映象的建立者
ENV key value設定環境變數(可以寫多條)
RUN command 是 Dockerfile 的核心部分(可以寫多條)
ADD source_dir/file dest_dir/file 將宿主機的檔案複製到容器內,如果是一個壓縮檔案,將會在複製後自動解壓
COPY source_dir/file dest_dir/file 和 ADD 相似,但是如果有壓縮檔案並不能解壓
WORDIR path_dir 設定工作目錄
需要注意一下,如果要使用 Dockerfile 檔案,名字必須為「Dockerfile」,否則裡面的命令不會有效。
映象上傳下載到映象倉庫
以前寫過部落格,感覺還是比較詳細的:[Docker]Docker拉取,上傳映象到Harbor倉庫(在上面應該也看到過了,再放一次)
關於 Docker 入門,我只能幫你到這兒了~
最後,我想重複一句話:選擇和一群優秀的人一起成長,你成長的速度絕對會不一樣!
歡迎轉發到朋友圈
歡迎留言