docker下載地址:
https://get.docker.com/builds/Linux/x86_64/docker-1.13.1.tgz
docker的rpm包下載網址:
http://yum.dockerproject.org/repo/main/centos/7/Packages/
##docker中文網址:
http://www.docker.org.cn/thread/126.html
##docker官網檔案庫:
https://docs.docker.com/engine/installation/linux/centos/
##dockerfile官網 命令解釋:
https://docs.docker.com/engine/reference/builder/#cmd
##docker-compose官網 命令解釋:
https://docs.docker.com/compose/compose-file/
##docker官網 docker run命令解釋:
https://docs.docker.com/engine/reference/run/
##docker官網: 使用Docker容器啟動應用程式
http://hadoop.apache.org/docs/r3.1.0/hadoop-yarn/hadoop-yarn-site/DockerContainers.html
##docker官方鏡像倉庫
https://hub.docker.com/search/
centos鏡像下載地址:
https://hub.docker.com/_/centos
docker部署與基礎鏡像準備
1.docker安裝
方法1:yum方式安裝
lsb_release -a ##查看系統版本
uname -r ##查看內核版本

yum list installed | grep docker ##查看是否已安裝docker串列
yum install -y docker ##yum命令安裝
docker -v ##查看docker版本

systemctl start docker ##啟動docker
systemctl status docker ##查看docker狀態

systemctl enable docker ##設定開機自啟
docker --help ##查看docker命令幫助
方法2:tar包方式安裝
##docker下載地址:
https://get.docker.com/builds/Linux/x86_64/docker-1.13.1.tgz
##解壓docker
tar --strip-components=1 -zxvf docker-1.13.1.tgz -C /usr/local/bin
##查看docker版本
docker -v

##設定docker開機啟動
vi /usr/lib/systemd/system/docker.service ##添加如下內容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
##啟動docker
systemctl start docker.service ##啟動docker
systemctl enable docker.service ##設定開機啟動
systemctl status docker.service ##查看docker運行情況
docker --help ##查看命令幫助
2.下載centos鏡像
docker search centos ##搜索官方倉庫的centos鏡像(需要訪問外網)

docker pull centos ##拉取官方倉庫最新版本的centos
docker images ##查看本地鏡像

##啟動本地鏡像,生成容器并查看centos版本
docker run -it 300e315adb2f /bin/bash
cat /etc/redhat-release

##下載指定版本的centos
docker pull centos:centos7.9.2009

3.制作基礎鏡像
##首先使用tag命令打標簽對鏡像重命令
docker tag 8652b9f0cb4c centos7.9:v1
docker rmi -f centos:centos7.9.2009
docker images

方法1:dockerfile方式
##編輯Dockerfile檔案
vi Dockerfile
FROM centos7.9:v1
MAINTAINER bonc
USER root
# install dev tools
RUN yum install -y autoconf make automake wget httpd-tools zip vim
RUN yum install -y curl tar unzip which sudo initscripts openssh-server openssh-clients rsync
RUN yum install -y gcc-c++
RUN yum install -y pcre pcre-devel
RUN yum install -y zlib zlib-devel
RUN yum install -y openssl openssl-devel
# clock sync
RUN rm -f /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# passwordless ssh
RUN echo "root"| passwd --stdin root
RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ed25519_key
RUN ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
RUN cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
WORKDIR /root
EXPOSE 22
USER root
##構建基礎鏡像
docker build --help ##查看docker build命令提示
docker build -t centos7.9:20210106 -f Dockerfile . ##使用Dockerfile生成鏡像
docker images ##查看剛生成的鏡像

方法2:docker commit方式
##啟動基礎鏡像,直接在生成的容器里面進行操作
docker run --name httpd001 -it centos7.9:20210106 /bin/bash
yum install -y httpd ##容器里面yum安裝httpd

echo "2021 hello world" >/var/www/html/index.html

##退出容器并使用commit保存容器的狀態為新鏡像httpd001:v1
exit
docker commit e18d811e46b8 httpd001:v1

##啟動commit方式生成的鏡像httpd001:v1,并啟動httpd服務
docker run --name httpd001 -it -p 10080:80 httpd001:v1 /bin/bash
/usr/sbin/httpd -DFOREGROUND

##web查看
http://192.168.30.1:10080/

4.Dockerfile部署tomcat演示
##準備相關檔案

其中,
beh_env 為環境變數檔案
my.repo 為本地yum源
jdk,tomcat 為原始解壓包后重命名
start_tomcat.sh 為tomact啟動腳本
Dockerfile_tomcat 為生成tomcat鏡像的Dockerfile檔案
cat start_tomcat.sh
#!/bin/bash
source /etc/profile
/usr/local/tomcat/bin/startup.sh
ps -ef | grep -v $0 | grep -v grep > /dev/null
while [[ $? -eq 0 ]]
do
sleep 20
ps -ef | grep -v $0 | grep -v grep > /dev/null
done
cat beh_env
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export TOMCAT_HOME=/usr/local/tomcat
export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH
cat Dockerfile_tomcat
FROM centos7.9:20210106
MAINTAINER bonc
USER root
# install dev tools
RUN rm -rf /etc/yum.repos.d/*
ADD my.repo /etc/yum.repos.d
RUN yum install -y ftp lrzsz
# Set password
RUN echo "root"| passwd --stdin root
# Add files
ADD jdk /usr/local/jdk
ADD tomcat /usr/local/tomcat
ADD beh_env /usr/local/beh_env
ADD start_tomcat.sh /usr/local/start_tomcat.sh
#Set env
RUN echo "source /usr/local/beh_env" >> /etc/profile
WORKDIR /usr/local/tomcat/bin
EXPOSE 8080
CMD /usr/local/start_tomcat.sh
##創建并查看生成的tomcat鏡像
docker build -t tomcat:v1 -f Dockerfile_tomcat .
docker images

##啟動tomcat容器
docker run --name tomcat18080 -itd -p 18080:8080 tomcat:v1
docker ps -a ##查看當前的所有容器

##web訪問驗證:
http://192.168.30.1:18080/

5.save load演示
##使用save命令將docker01節點上的鏡像打包成檔案
docker save tomcat:v1 > tomcat.tar

##將打包檔案傳輸到docker02節點;
##使用load命令將docker02節點的打包檔案加載為鏡像
docker load < tomcat.tar

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282411.html
標籤:其他
下一篇:搭建cobbler自動化安裝系統
