總結:docker的推廣必須借助與開發人員的接入,單純的運維人員介入,實際的工作量是很大的。docker適用分布式服務,微服務架構,跑一次性/定時任務。(模糊理解:需要使用虛擬機器的場景,虛擬機器開銷大,docker可以實現替換虛擬的的作用)。乙個映象就是乙個服務,多個映象進行服務配置,埠對映等進行系統組裝。前期配置的工作量是比較大的,後續就只需要修改dockerfile,發布映象,啟動映象等簡單命令(系統簡單的化,本人覺得直接用jenkins進行腳本級的部署還要好一點)(複雜環境用docker才能體現它的特定,否則只能視為乙個虛擬機器,有些情況下還沒有虛擬機器好使用)
工作流程
製作dockerfile–>docker build(編譯成映象)–>push到映象儲存伺服器/pull到部署伺服器–>啟動服務
附上常用命令:
from ubuntu:18.04 #引用初始映象,命令from
label maintainer="james@example.com" ##為自己的映象打上標籤,以便後續查詢及維護
env debian_frontend noninteractive ##在使用apt-get安裝依賴時並非靜默安裝,需要互動,所以無法正常通過,用這條命令可以解決這個問題
run apt-get -qq update ## 執行更新apt-get 的命令
run apt-get -qq install tomcat8 default-jdk ##通過apt-get 安裝tomcat
env catalina_home /usr/share/tomcat8 ##設定環境變數,在後續的檔案種使用
env catalina_base /var/lib/tomcat8
env catalina_pid /var/run/tomcat8.pid
env catalina_sh /usr/share/tomcat8/bin/catalina.sh
env catalina_tmpdir /tmp/tomcat8-tomcat8-tmp
run mkdir -p $catalina_tmpdir
expose 8080 ##對外暴露的埠號
entrypoint [ "/usr/share/tomcat8/bin/catalina.sh", "run" ] ##啟動映象時執run **.sh指令碼的命令
sudo docker built -t name:v1.0.0 ##映象名稱:版本號
sudo docker run -d -p 埠號 --name 映象名稱:版本號 ##啟動服務,不同服務,命令不同
sudo docker exec -ti 容器id /bin/bash ##進入到容器內部
sudo docker stop/rm 容器id ##停止/刪除容器服務
sudo docker images ##檢視映象
sudo docker ps ##檢視執行種的容器
sudo docker push/pull ##上傳或者下拉映象
sudo docker login -u=使用者名稱 -p=密碼 ##登入docker_hub
sudo docker top 程序id ##檢視容器具體的運**況
sudo docker search 映象名稱 -s 次數 ##查詢開源映象,指定超過mark次數的
ssh dockerfile 建立映象:可能會涉及到的服務安裝命令
busybox:整合了100多個常用linux命令的軟體工具箱。
sudo docker search busybox
sudo docker pull busybox
sudo docker run -it busybox
ssh :commit建立支援ssh服務的映象
1:ubuntu 命令安裝
sudo docker run -it ubuntu:18.04 /bin/bash ##進入容器內部
apt-get update ##
apt-get install openssh-server
mkdir -p /var/run/sshd
/usr/sbin/sshd -d & ##啟動服務
netstat -tunlp ##檢視狀態
sed -ri 's/session required pam_loginuid.so/#session reqiured pam_loginuid.so/g' /ect/pam.dsshd ##取消登入限制
mkdir root/.ssh
ssh -keygen -t rsa 等命令
配置完成後設定指令碼 run.sh
【#!/bin/bash】 /usr/sbin/sshd -d
sudo docker commit fcl sshd:ubuntu ##退出容器,用commit命令儲存乙個新的sshd:ubuntu的映象
sudo docker run -p 10022:22 -d sshd:ubuntu /run.sh
其餘知識mkdir sshd_ubunru
cd sshd_ubuntu
touch dockerfile run.sh
編輯run.sh
[#!/bin/bash /usr/sbin/sshd -d]
編輯dokcerfile
from ubuntu:18.04
label maintainer="james@example.com"
env debian_frontend noninteractive
run apt-get -qq update ## 執行更新apt-get 的命令
run apt-get -qq install -y openssh-server
run mkdir -p /var/sshd
run mkdir -p /root/.ssh
add anthorized_keys /roo/.ssh/authorized_keys
add run.sh /run.sh
run chmod 755 /run.sh
expose22
cmd ["/run.sh"] ##設定自啟動命令
在宿主主機上生成ssh金鑰:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub > authorized_keys
建立映象:
cd sshd_ubuntu
sudo docker build -t sshd:ubuntu:v1.0.0 .
docker三大技術:
docker-machine,
docker-compose,
docker-swarm
容器之間的網路連線(docker-networking):
sudo docker network ls
相關參考連線:
1:2:
3:4:
5:6:
docker基礎知識
docker 容器引擎 cgroups namespace 服務註冊 服務發現 容器概念早就出現,之後出現docker,docker只是容器技術的一種 docker machine docker swarm docker compose docker daemon 映象 分層 ubuntu aufs...
docker基礎知識 docker學習知識
學習任何乙個開源新技術,首先問自己幾個問題 1.為什要學習它?2.學習它需要了解哪些相關知識點?3.如何快速學習?4.該技術的使用場景是什麼?為什要學習docker?docker是輕量級虛擬化技術,docker使linux容器技術的應用更加簡單和標準化 docker容器啟動時毫秒級的 docker將...
Docker基礎 1 基礎知識
一 docker是什麼 1,為何會有docker出現 方便 環境交付 2,docker理念 一次封裝,到處執行 3,一句話 解決執行環境和配置問題軟體容器,方便做持續整合並有助於整體發布的容器虛擬化技術 二 docker能幹嘛 1,之前的虛擬機器技術 虛擬機器是帶環境安裝的虛擬系統,可以在一種作業系...