小言_互联网的博客

docker部署与基础镜像准备

382人阅读  评论(0)

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方式安装


  
  1. lsb_release -a       ##查看系统版本
  2. uname -r             ##查看内核版本


  
  1. yum list installed | grep docker        ##查看是否已安装docker列表
  2. yum install -y docker                      ##yum命令安装
  3. docker -v                                  ##查看docker版本


  
  1. systemctl start docker ##启动docker
  2. systemctl status docker ##查看docker状态


  
  1. systemctl enable docker ##设置开机自启
  2. 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     ##添加如下内容:


  
  1. [Unit]
  2. Description=Docker Application Container Engine
  3. Documentation=https://docs.docker.com
  4. After=network.target
  5. [Service]
  6. Type=notify
  7. ExecStart=/usr/ local/bin/dockerd
  8. ExecReload=/bin/ kill -s HUP $MAINPID
  9. LimitNOFILE=infinity
  10. LimitNPROC=infinity
  11. LimitCORE=infinity
  12. TimeoutStartSec=0
  13. Delegate=yes
  14. KillMode=process
  15. [Install]
  16. WantedBy=multi-user.target

##启动docker


  
  1. systemctl start docker.service ##启动docker
  2. systemctl enable docker.service ##设置开机启动
  3. systemctl status docker.service ##查看docker运行情况
  4. docker -- help ##查看命令帮助

 

2.下载centos镜像

docker search centos             ##搜索官方仓库的centos镜像(需要访问外网)


  
  1. docker pull centos ##拉取官方仓库最新版本的centos
  2. docker images ##查看本地镜像

##启动本地镜像,生成容器并查看centos版本


  
  1. docker run -it 300e315adb2f /bin/bash
  2. cat /etc/redhat-release

##下载指定版本的centos

docker pull centos:centos7.9.2009

 

3.制作基础镜像

##首先使用tag命令打标签对镜像重命令


  
  1. docker tag 8652b9f0cb4c centos7.9:v1
  2. docker rmi -f centos:centos7.9.2009
  3. docker images

方法1:dockerfile方式

##编辑Dockerfile文件

vi Dockerfile


  
  1. FROM centos7.9:v1
  2. MAINTAINER bonc
  3. USER root
  4. # install dev tools
  5. RUN yum install -y autoconf make automake wget httpd-tools zip vim
  6. RUN yum install -y curl tar unzip which sudo initscripts openssh-server openssh-clients rsync
  7. RUN yum install -y gcc-c++
  8. RUN yum install -y pcre pcre-devel
  9. RUN yum install -y zlib zlib-devel
  10. RUN yum install -y openssl openssl-devel
  11. # clock sync
  12. RUN rm -f /etc/localtime
  13. RUN ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  14. # passwordless ssh
  15. RUN echo "root"| passwd --stdin root
  16. RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
  17. RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
  18. RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ecdsa_key
  19. RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_ed25519_key
  20. RUN ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
  21. RUN cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
  22. WORKDIR /root
  23. EXPOSE 22
  24. USER root

##构建基础镜像


  
  1. docker build -- help ##查看docker build命令提示
  2. docker build -t centos7.9:20210106 -f Dockerfile . ##使用Dockerfile生成镜像
  3. docker images ##查看刚生成的镜像

方法2:docker commit方式

##启动基础镜像,直接在生成的容器里面进行操作


  
  1. docker run --name httpd001 -it centos7.9:20210106 /bin/bash
  2. yum install -y httpd ##容器里面yum安装httpd

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

##退出容器并使用commit保存容器的状态为新镜像httpd001:v1


  
  1. exit
  2. docker commit e18d811e46b8 httpd001:v1

##启动commit方式生成的镜像httpd001:v1,并启动httpd服务


  
  1. docker run --name httpd001 -it -p 10080:80 httpd001:v1 /bin/bash
  2. /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


  
  1. #!/bin/bash
  2. source /etc/profile
  3. /usr/ local/tomcat/bin/startup.sh
  4. ps -ef | grep -v $0 | grep -v grep > /dev/null
  5. while [[ $? -eq 0 ]]
  6. do
  7. sleep 20
  8. ps -ef | grep -v $0 | grep -v grep > /dev/null
  9. done

cat beh_env


  
  1. export JAVA_HOME=/usr/ local/jdk
  2. export CLASSPATH= $JAVA_HOME/lib: $JAVA_HOME/jre/lib: $CLASSPATH
  3. export TOMCAT_HOME=/usr/ local/tomcat
  4. export PATH= $JAVA_HOME/bin: $TOMCAT_HOME/bin: $PATH

cat Dockerfile_tomcat


  
  1. FROM centos7.9:20210106
  2. MAINTAINER bonc
  3. USER root
  4. # install dev tools
  5. RUN rm -rf /etc/yum.repos.d/*
  6. ADD my.repo /etc/yum.repos.d
  7. RUN yum install -y ftp lrzsz
  8. # Set password
  9. RUN echo "root"| passwd --stdin root
  10. # Add files
  11. ADD jdk /usr/ local/jdk
  12. ADD tomcat /usr/ local/tomcat
  13. ADD beh_env /usr/ local/beh_env
  14. ADD start_tomcat.sh /usr/ local/start_tomcat.sh
  15. #Set env
  16. RUN echo "source /usr/local/beh_env" >> /etc/profile
  17. WORKDIR /usr/ local/tomcat/bin
  18. EXPOSE 8080
  19. CMD /usr/ local/start_tomcat.sh

##创建并查看生成的tomcat镜像


  
  1. docker build -t tomcat:v1 -f Dockerfile_tomcat .
  2. docker images

##启动tomcat容器


  
  1. docker run --name tomcat18080 -itd -p 18080:8080 tomcat:v1
  2. 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://blog.csdn.net/qq_36546699/article/details/116310391
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场