docker使用以及自定義鏡像

docker使用

1. docker安裝mysql鏡像並使用

# 首先去鏡像倉庫找到對應版本的mysql鏡像地址
 http://hub.daocloud.io
# 就會進入到如下頁面,輸入我們想要的鏡像名
# 點擊版本就會有我們mysql的所有版本信息
# 點擊拉取,就可以有具體的倉庫鏡像地址
# 然後使用以下命令進行拉取對應版本mysql
docker pull daocloud.io/library/mysql:5.7.6

    

# 下載完畢,使用以下命令來查看是否下載成功
docker images
# 出現以下信息說明下載成功
[root@mysql1 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進行連接
[root@mysql1 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 數據卷名稱
[root@mysql1 _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
[root@mysql1 _data]# docker volume ls
DRIVER    VOLUME NAME
local     79a22874552a517a60f41d14c17ea483979eed002b074a27216f9f16ff8673f5
local     a7d0e6c93e754563553c1ceec3af293eb5c416a24c409b92147f1c77bcc154d8
local     e189613465fcc3fe144649d98614ca9a80fdd8bc62d56f1fdb109c8481b8193b
local     tomcat
# 4. 刪除數據卷
docker volume rm 數據卷名稱
[root@mysql1 _data]# docker volume rm tomcat
tomcat
[root@mysql1 _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
[root@mysql1 _data]# cd /var/lib/docker/volumes/tomcat/_data/
[root@mysql1 _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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章