1.docker 常用命令解析
docker ps? : 查看當前運行的 container? -a 查看之前的container
docker stop :停止container
docker rm:? 刪除container
docker rmi : 刪除image
docker images : 查看當前image集合
docker run : 運行image -d 后臺運行 --name 聲明別名 -p 將宿主機端口映射到容器端口
docker exec -it xxx /bin/bash? 進入container 進行操作
docker exec -it xxx /bin/sh 有點container 不帶/bin/bash 可以用這個替換
docker pull? : 將docker image 拉取到本地
docker build -t <name> . 將當前目錄下 Dockerfile 文件 打包成image?
2.docker 將springBoot jar 打包成image
1.將目標jar包上傳到某服務器
2.編輯 Dockerfile 文件 同jar包目錄下
3. file 文件內(nèi)容 :
? 1# 基礎(chǔ)鏡像是docker倉庫的java:8(也就是jdk8的意思)
? ? FROM java:8
? #? 作者簽名
? ? MAINTAINER Ma Lizhi
? #? 簡化 jar 的名字路徑 (左邊是服務器中jar包的路徑,因為當前文件是和jar包同級,所以直接寫名字即可,右邊是鏡像中要存放jar包的路徑)
? ? COPY lost_and_found-v1.jar /lost_and_found-v1.jar
? #? 執(zhí)行 java -jar 命令 (CMD:在啟動容器時才執(zhí)行此行。RUN:構(gòu)建鏡像時就此行,后面的jar包路徑就是上面要設(shè)置的jar包路徑)
? ? CMD java -jar /lost_and_found-v1.jar
? #? 設(shè)置對外端口為 8082
? ? EXPOSE 8082
4.在這個目錄下 執(zhí)行 docker build -t test .? //將當前目錄下DockerFile 打包到image 中
5. 通過docker images 查看 image 是否成功? 如果成功 通過docker run
3.docker 虛擬機安裝
我們通常在windows上面想要進行docker 最理想的是利用虛擬機 安裝centos 系統(tǒng)?
這邊采用vagrant + virtual box 來搭建虛擬機加上 創(chuàng)建docker?
下面我對虛擬機的過程做個筆記
1.下載安裝vagrant
01 訪問Vagrant官網(wǎng) https://www.vagrantup.com/
02 點擊Download Windows,MacOS,Linux等
03 選擇對應的版本
04 傻瓜式安裝
05 命令行輸入vagrant,測試是否安裝成功
2.下載安裝virtual box
01 訪問VirtualBox官網(wǎng)? ? https://www.virtualbox.org/
02 選擇左側(cè)的“Downloads”
03 選擇對應的操作系統(tǒng)版本
04 傻瓜式安裝
05 [win10中若出現(xiàn)]安裝virtualbox快完成時立即回滾,并提示安裝出現(xiàn)嚴重錯誤? ? (1)打開服務? ? (2)找到Device Install Service和Device Setup Manager,然后啟動? ? (3)再次嘗試安裝
4.安裝centos7
01 創(chuàng)建first-docker-centos7文件夾,并進入其中[目錄路徑不要有中文字符]
02 在此目錄下打開cmd,運行vagrant init centos/7? 此時會在當前目錄下生成Vagrantfile?
03 運行vagrant up[注意不要運行,拉取遠端的centos7太慢]? 此時會找centos7的鏡像,本地有就用本地的,本地沒有就會拉取遠端的?
04 準備centos7的box?
? ? (1)選中命令行中提示的鏈接? ? ? 比如 https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box?
? ? (2)復制到迅雷中下載?
? ? (3)vagrant box add centos/7 D:\迅雷下載\virtualbox.box? ?
? ? (4)vagrant box list? 查看本地的box[這時候可以看到centos/7]? ?
05 根據(jù)本地的centos7 box創(chuàng)建虛擬機? ? vagrant up[打開virtual box,可以發(fā)現(xiàn)centos7創(chuàng)建成功]?
06 vagrant基本操作? ?
? ? ? (1)vagrant ssh? ? ? ? ? ? 進入剛才創(chuàng)建的centos7中? ?
? ? ? (2)vagrant status? ? ? ? 查看centos7的狀態(tài)? ?
? ? ? (3)vagrant halt? ? ? ? 停止centos7? ?
? ? ? (4)vagrant destroy? ? ? ? 刪除centos7? ?
? ? ? (5)vagrant status? ? ? ? 查看當前vagrant創(chuàng)建的虛擬機?
? ? ? (6)Vagrantfile中也可以寫腳本命令,使得centos7更加豐富? ? ? ? 但是要注意,修改了Vagrantfile,要想使正常運行的centos7生效,必須使用vagrant reload
5 多節(jié)點Vagrantfile 案例
(1..2).each do |i|
? ? ? config.vm.define "node#{i}" do |node|
? ? ? ? ? # 設(shè)置虛擬機的Box
? ? ? ? ? node.vm.box = "centos/7"
? ? ? ? ? # 設(shè)置虛擬機的主機名
? ? ? ? ? node.vm.hostname="node#{i}"
? ? ? ? ? # 設(shè)置虛擬機的IP
? ? ? ? ? node.vm.network "private_network", ip: "192.168.56.#{100+i}"
? ? ? ? ? # 設(shè)置主機與虛擬機的共享目錄
? ? ? ? ? # node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"
? ? ? ? ? # VirtaulBox相關(guān)配置
? ? ? ? ? node.vm.provider "virtualbox" do |v|
? ? ? ? ? ? ? # 設(shè)置虛擬機的名稱
? ? ? ? ? ? ? v.name = "node#{i}"
? ? ? ? ? ? ? # 設(shè)置虛擬機的內(nèi)存大小
? ? ? ? ? ? ? v.memory = 2048
? ? ? ? ? ? ? # 設(shè)置虛擬機的CPU個數(shù)
? ? ? ? ? ? ? v.cpus = 2
? ? ? ? ? end
? ? ? end
? end
6 vagrant root xshell 登陸
(1) 在vagrant 當前虛擬機安裝目錄下 執(zhí)行 vagrant ssh
(2) vi /etc/ssh/sshd_config
(3) 修改PasswordAuthentication yes
(4) passwd修改密碼
(5) systemctl restart sshd
7 安裝docker
刪除 以前的 yum remove docker? docker-client? docker-client-latest? docker-common \? ? ? ? ? ? ? ? ? docker-latest? docker-latest-logrotate docker-logrotate? docker-engine
yum install -y yum-utils device-mapper-persistent-data? lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
? ? ? 修改鏡像為阿里云:自己查找阿里云鏡像服務(鏡像加速)
yum install -y docker-ce docker-ce-cli containerd.io? 安裝docker
systemctl start docker && sudo systemctl enable docker? 啟動docker
docker run hello-world? 測試是否安裝成功