docker環(huán)境準(zhǔn)備
1.查看環(huán)境中是否存在docker環(huán)境
docker version
2.不存在的話需要?jiǎng)?chuàng)建docker
鏡像(image):
docker鏡像就好比是一個(gè)目標(biāo),可以通過(guò)這個(gè)目標(biāo)來(lái)創(chuàng)建容器服務(wù),tomcat鏡像>run>容器(提供服務(wù)
器),通過(guò)這個(gè)鏡像可以創(chuàng)建多個(gè)容器(最終服務(wù)運(yùn)行或者項(xiàng)目運(yùn)行就是在容器中的)。
容器(container):
Docker利用容器技術(shù),獨(dú)立運(yùn)行一個(gè)或者一組應(yīng)用,通過(guò)鏡像來(lái)創(chuàng)建的.
啟動(dòng),停止,刪除,基本命令
目前就可以把這個(gè)容器理解為就是一個(gè)簡(jiǎn)易的 Linux系統(tǒng)。
倉(cāng)庫(kù)(repository):
倉(cāng)庫(kù)就是存放鏡像的地方!
倉(cāng)庫(kù)分為公有倉(cāng)庫(kù)和私有倉(cāng)庫(kù)。(很類(lèi)似git)
Docker Hub是國(guó)外的。
阿里云…都有容器服務(wù)器 (配置鏡像加速!)
安裝docker
1.環(huán)境準(zhǔn)備
linux要求內(nèi)核3.0以上
centos7
2.環(huán)境查看
#系統(tǒng)內(nèi)核要求3.0以上
[root@localhost ~]# uname -r
3.10.0-1062.el7.x86_64
#系統(tǒng)版本
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
2.安裝
#1.卸載舊版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要的安裝包
yum install -y yum-utils
#3.設(shè)置鏡像的倉(cāng)庫(kù)
#推薦使用國(guó)內(nèi)的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新軟件包索引
yum makecache fast
#4.安裝docker docker-ce 社區(qū)版 而ee是企業(yè)版
yum install docker-ce docker-ce-cli containerd.io # 這里我們使用社區(qū)版即可
#5.啟動(dòng)docker
systemctl start docker
#6.使用docker version 查看是否安裝成功
docker version
docker 鏡像相關(guān)命令
docker version # 顯示docker的版本信息
docker info # 顯示docker的系統(tǒng)信息,包括鏡像和容器的數(shù)量
docker 命令 --help # 幫助命令
# 鏡像命令
docker images 查看鏡像信息
REPOSITORY 鏡像的倉(cāng)庫(kù)源
TAG 鏡像標(biāo)簽
IMAGE ID 鏡像id
CREATED 鏡像的創(chuàng)建時(shí)間
SIZE 鏡像的大小
#可選項(xiàng)
Options:
-a, --all # 列出所有鏡像
-q, --quiet # 只顯示鏡像id
docker search 搜索鏡像
eg:docker search mysql
docker pull 鏡像名[:tag]
eg: docker pull mysql:5.7
刪除鏡像
[root@localhost /]# docker rmi -f 鏡像id #刪除指定鏡像
[root@localhost /]# docker rmi -f 鏡像id 鏡像id 鏡像id #刪除多個(gè)鏡像
[root@localhost /]# docker rmi -f $(docker images -aq) #刪除全部鏡像
將本目錄下所有文件打包成鏡像
docker build -t app-cli:1.1 .
docker 容器相關(guān)命令
# 有了鏡像才可以創(chuàng)建容器
1.新建鏡像并啟動(dòng)容器
docker run -d app-cli:1.1
# 參數(shù)說(shuō)明
--name="Name" 容器名字 tomcat01 tomcat02 ,用來(lái)區(qū)分容器
-d 后臺(tái)方式運(yùn)行
-it 使用交互方式運(yùn)行,進(jìn)入容器查看內(nèi)容
-p 指定容器的端口 -p 8080:80
-p ip:主機(jī)(即宿主機(jī))端口:容器端口
-p 主機(jī)端口:容器端口 #這種方式常用
-p 容器端口
容器端口P
-P 隨機(jī)指定端口(大寫(xiě)P)
列出所有容器
docker ps 列出正在運(yùn)行的容器
docker ps -a 列出歷史上所有容器
exit # 直接退出容器
Ctrl + p + q # 容器不停止退出
刪除容器
docker rm 容器id # 刪除指定容器,不能刪除正在運(yùn)行的容器,如果要強(qiáng)制刪
除 rm -f
docker rm -f $(docker ps -aq) # 刪除所有容器
docker ps -a -q|xargs docker rm # 刪除所有容器
啟動(dòng)和停止容器的操作
docker start 容器id # 啟動(dòng)容器
docker restart 容器id # 重啟容器
docker stop 容器id # 停止當(dāng)前正在運(yùn)行的容器
docker kill 容器id # 強(qiáng)制停止當(dāng)前正在運(yùn)行的容器
顯示日志
docker logs -f -t --tail 數(shù)字 容器id
# 顯示日志
-tf # 顯示日志
--tail # 要顯示的日志條數(shù)
[root@localhost /]# docker logs -tf --tail 10 ce989f90023d
# 查看容器中進(jìn)程的信息
# 命令 docker top 容器id
[root@localhost /]# docker top ce989f90023d
進(jìn)入當(dāng)前正在運(yùn)行的容器
# 方式一
docker exec -it 容器id bashShell
# 方式二
docker attach 容器id
# 測(cè)試
[root@localhost /]# docker attach ce989f90023d
# docker exec # 進(jìn)入容器后開(kāi)啟一個(gè)新的終端,可以在里面操作(常用)
# docker attach # 進(jìn)入容器正在執(zhí)行的終端,不會(huì)啟動(dòng)新的進(jìn)程
容器和主機(jī)之間信息傳遞
從容器內(nèi)拷貝文件到主機(jī)上
docker cp 容器id:容器內(nèi)目標(biāo)文件路徑 目的主機(jī)路徑
# 查看當(dāng)前主機(jī)目錄
[root@localhost home]# ls
ztx
# 進(jìn)入docker容器內(nèi)部
[root@localhost home]# docker attach ce989f90023d
[root@ce989f90023d /]# cd /home/
[root@ce989f90023d home]# ls
# 在容器內(nèi)新建一個(gè)文件
[root@ce989f90023d home]# touch test.java
[root@ce989f90023d home]# exit
exit
[root@localhost home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
ce989f90023d centos "/bin/bash" 44 minutes ago Exited (0) 46 seconds
ago nifty_johnson
# 將docker內(nèi)文件拷貝到主機(jī)上
[root@localhost home]# docker cp ce989f90023d:/home/test.java /home
[root@localhost home]# ls
test.java ztx
[root@localhost home]#
# 拷貝是一個(gè)手動(dòng)過(guò)程,未來(lái)我們使用 -v 卷的技術(shù),可以實(shí)現(xiàn)自動(dòng)同步
內(nèi)網(wǎng)中將jar包上傳到docker倉(cāng)庫(kù)中
1.環(huán)境說(shuō)明
1.開(kāi)發(fā)人員將java微服務(wù)打包成在linux中可運(yùn)行的jar包,將其傳送給運(yùn)維人員
2.外網(wǎng)和內(nèi)網(wǎng)可以傳送文件
3.內(nèi)網(wǎng)需要有l(wèi)inux服務(wù)器,并且配置了docker環(huán)境和命名空間
這里過(guò)程是基于k8s的集群kuoard控制器,上傳docker的過(guò)程,環(huán)境都是配置完畢的
2.創(chuàng)建dockerfile
先在命名空間中創(chuàng)建一個(gè)項(xiàng)目目錄,用于接收項(xiàng)目的多個(gè)微服務(wù)
這里選擇/app 命名空間
mkdir /app/B2C-cph
將指定部署包上傳到指定目錄下
mkdir /app/B2C-cph/app
mkdir /app/B2C-cph/nginx
mkdir /app/B2C-cph/mysql
mkdir /app/B2C-cph/redis
…
不同服務(wù)上傳到不同的目錄下
每個(gè)服務(wù)下編寫(xiě)不同的dockerfile
這里選擇一個(gè)java微服務(wù)做個(gè)dockrfile
1.從倉(cāng)庫(kù)中拉取jdk1.8環(huán)境
from 倉(cāng)庫(kù)地址/項(xiàng)目名/鏡像:latest
2.添加微服務(wù)jar包
ADD app.jar app.jar
3.環(huán)境設(shè)置
ENV LANG=en_US.utf8
4.啟動(dòng)命令
ENTRYPOINT ["java","-jar","app.jar"]
app目錄下只有app.jar和dockerfile文件文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-754049.html
1.將app目錄打包成鏡像
# docker build -t app-cli:1.0 .
2.打標(biāo)簽
# docker tag app-cli:1.0 倉(cāng)庫(kù)地址/項(xiàng)目名/app-cli:1.0
3.上傳到倉(cāng)庫(kù)
# docker push 倉(cāng)庫(kù)地址/項(xiàng)目名/app-cli:1.0
這里去內(nèi)網(wǎng)docker倉(cāng)庫(kù)頁(yè)面就可以可看到創(chuàng)建的鏡像了
可以在k8s集群管理平臺(tái)拉取鏡像創(chuàng)建容器文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754049.html
到了這里,關(guān)于k8s系列-kuboard創(chuàng)建工作負(fù)載 docker上傳java微服務(wù)jar包到倉(cāng)庫(kù)的過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!