docker使用以及自定義映象
阿新 • • 發佈:2020-12-16
docker使用
1. docker安裝mysql映象並使用
# 首先去映象倉庫找到對應版本的mysql映象地址
http://hub.daocloud.io
# 就會進入到如下頁面,輸入我們想要的映象名
# 點選版本就會有我們mysql的所有版本資訊
# 點選拉取,就可以有具體的倉庫映象地址
# 然後使用以下命令進行拉取對應版本mysql
docker pull daocloud.io/library/mysql:5.7.6
# 下載完畢,使用以下命令來檢視是否下載成功
docker images
# 出現以下資訊說明下載成功
[[email protected] soft]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/mysql 5.7.6 2a2a35106ec5 5 years ago 361MB
# 執行mysql容器 # 1. 先下載mysql映象再執行,注意這個-e放到最後邊可能啟動有問題 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql 2a # 2. 直接執行,在執行過程中如果本地沒有mysql映象會先去倉庫拉取執行 docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4
# 使用docker以下命令檢視mysql是否啟動,此時就可以通過navicat進行連線 [[email protected] soft]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES eb9fd349a40a 2a "/entrypoint.sh mysq…" 2 minutes ago Up 2 minutes 0.0.0.0:3307->3306/tcp mysql
2. docker安裝tomcat映象並使用
# 使用docker拉取倉庫對應版本tomcat
docker pull daocloud.io/library/tomcat:8.5.15-jre8
# 啟動tomcat映象
# 常用操作例如以下
docker run -d -p 8080:8080 --name tomcat tomcat:8.5
# 或者
docker run -d -p 8080:8080 --name tomcat b8df
3. 將檔案拷貝到容器地址中
# 1. 進入到容器內部
docker exec -it 容器id bash
# 例如 docker exec -it c4 bash
LICENSE NOTICE RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work
# 相當於在容器內部進行操作
# 拷貝linux檔案到容器地址
# docker cp 檔名稱 容器id:容器內部路徑
# 舉個例子
docker cp /usr/local/soft/dockerTest.war fe:/usr/local/tomcat/webapps
4.資料卷
為了部署dockerTest.war的工程,需要使用到cp命令將宿主機內的dockerTest.war檔案複製到容器內部。
資料卷:將宿主機的一個目錄對映到容器的一個目錄中。
可以在宿主機中操作目錄中的內容,那麼容器內部對映的檔案,也會跟著一起改變。這樣的好處就可以不用每次拷貝,直接修改即可
# 1. 建立資料卷
docker volume create 資料卷名稱
# 建立資料卷之後,預設會存放在一個目錄下 /var/lib/docker/volumes/資料卷名稱/_data
# 2. 檢視資料卷的詳細資訊
docker volume inspect 資料卷名稱
[[email protected] _data]# docker volume inspect tomcat
[
{
"CreatedAt": "2020-12-14T14:07:47+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/tomcat/_data",
"Name": "tomcat",
"Options": {},
"Scope": "local"
}
]
# 3. 檢視全部資料卷
docker volume ls
[[email protected] _data]# docker volume ls
DRIVER VOLUME NAME
local 79a22874552a517a60f41d14c17ea483979eed002b074a27216f9f16ff8673f5
local a7d0e6c93e754563553c1ceec3af293eb5c416a24c409b92147f1c77bcc154d8
local e189613465fcc3fe144649d98614ca9a80fdd8bc62d56f1fdb109c8481b8193b
local tomcat
# 4. 刪除資料卷
docker volume rm 資料卷名稱
[[email protected] _data]# docker volume rm tomcat
tomcat
[[email protected] _data]# docker volume ls
DRIVER VOLUME NAME
local 79a22874552a517a60f41d14c17ea483979eed002b074a27216f9f16ff8673f5
local a7d0e6c93e754563553c1ceec3af293eb5c416a24c409b92147f1c77bcc154d8
local e189613465fcc3fe144649d98614ca9a80fdd8bc62d56f1fdb109c8481b8193b
# 5. 應用資料卷
# 當你對映資料卷時,如果資料卷不存在,Docker會自動幫你建立,會將容器內部自帶的檔案,儲存在預設的存放路徑中
docker run -v 資料卷名稱:容器內部的路徑 映象id
# 啟動加我們的volume資料卷
docker run -d -p 8080:8080 --name tomcat -v tomcat:/usr/local/tomcat/webapps b8
[[email protected] _data]# cd /var/lib/docker/volumes/tomcat/_data/
[[email protected] _data]# ls
docs examples host-manager manager ROOT
# 直接指定一個路徑作為資料卷的存放位置,這個路徑下是空的。
docker run -v 路徑:容器內部的路徑 映象id
# 例如以下方式
docker run -d -p 8080:8080 --name tomcat -v /usr/local/soft/tomcat:/usr/local/tomcat/webapps b8
5. docker自定義映象
中央倉庫上的映象,也是Docker的使用者自己上傳過去的。有些時候需要根據我們的使用場景來自定義些鏡
# 1. 建立一個Dockerfile檔案,並且指定自定義映象資訊
# Dockerfile檔案中常用的內容
from:指定當前自定義映象依賴的環境
copy:將相對路徑下的內容複製到自定義映象中
workdir:宣告映象的預設工作目錄
cmd:需要執行的命令(在workdir下執行的,cmd可以寫多的,只以最後一個為準)
# 舉個例子,自定義一個Tomcat映象,並且將ssm.war部署到Tomcat中
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
# 具體示例
FROM daocloud.io/library/java:openjdk-8-jre-alpine
COPY dockerTest.jar /usr/local/soft/dockerTest.jar
CMD ["sh", "-c", "java -jar /usr/local/soft/dockerTest.jar"]
# 2. 將準備好的Dockerfile和相應的檔案拖拽到Linux作業系統中,通過Docker的命令製作映象
docker build -f Dockerfile -t 映象名稱:[tag] .
# 示例如下 後邊的.必須是加的
docker build -f ./Dockerfile -t dockertest:1.0 .
本篇簡單的docker簡單應用已完結 後續還有更多的技術學習分享,希望找到致同道和的it大神或者是勵志通往大神的路的it打工人,一起鼓勵學習,鼓勵前進,以後我也會在抖音開直播學習,一起加油!!!
抖音號20200321kk