1. 程式人生 > 其它 >docker使用以及自定義映象

docker使用以及自定義映象

技術標籤:dockerdocker

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