Docker 环境部署

Posted brent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 环境部署相关的知识,希望对你有一定的参考价值。

安装Docker容器

Docker 官方安装地址
https://docs.docker.com/engin...

第一步:安装yum-utils(管理repository及扩展包的工具,可提供yum操作性能)

sudo yum install -y yum-utils

  1. sudo让普通用户具有普通管理元的权限执行操作
  2. Yum是一个RedHat以及CentOS中的Shell软件包管理器
第二步:设置docker 安装镜像

sudo yum-config-manager --add-repo https://download.docker.com/l...

第三步:安装docker-ce ( CE- Community Edition是社区版)

sudo yum install docker-ce docker-ce-cli containerd.io

第四步:启动docker (systemclt指令用于启动、关闭服务等)

sudo systemctl start docker

第五步:设置docker自启动(操作系统启动时docker也启动)

FAQ:
运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决

删除文件后再次运行yum
rm -f /var/run/yum.pid

Docker 加速设计

  1. 创建目录: sudo mkdir -p /etc/docker
  2. 镜像设置: sudo tee /etc/docker/daemon.json <<-\'EOF\'
    {
    "registry-mirrors": ["https://ar2qkqym.mirror.aliyuncs.com"]
    }
    EOF
  3. 重新加载配置: sudo systemctl daemon-reload
  4. 重启docker: sudo systemctl restart docker

    安装JDK软件

镜像方式安装

第一步:拉取镜像(从hub.docker.com)
docker pull benwang6/tedu-jdk
第二步:检查镜像
docker images
第三步:测试-从镜像运行启动容器,在容器中运行java -jar
docker run -d -p 9411:9411 -v /root/libs/sca/:/sca --entrypoint java benwang6/tedu-jdk -jar /sca/zipkin-server-2.23.2-exec.jar

docker在后台(-d)启动运行一个容器(进程),并将/root/libs/sca目录中的资源挂载(-v)到/sca挂载点,将容器端口9411映射到宿主机端口9411,然后通过java 指令执行挂在点资源(其中zipkin-server-2.23.2-exec.jar文件为我们要执行的挂载点文件),--entrypoint的含义为覆盖镜像中写的entrypoint选项(这个镜像文件中有写entrypoint选项),注--entrypoint指令的位置
自己制作镜像

第一步:拉取centos空的镜像(制作镜像时需要有一个空的centos:7镜像)
docker pull centos:7
第二步:创建目录并在目录中直接通过vim编辑此文件(通过mkdir指令实现)
mkdir jdk
第三步:在jdk目录下创建通过vim 指令编辑Dockerfile文件(文件不存在自动创建)
vim Dockerfile #注意文件的大小写(制作镜像时有严格规范)

文件内容如下:
FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \\
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ["bash"]

保存退出。
第三步:构建镜像(-t表示为镜像起个名字,名字后面的点表示当前目录)
docker build -t jdk:8 .
第四步:查看构建的镜像
docker images
第五步:测试镜像文件
docker run -d -p 9411:9411 -v /root/libs/sca/:/sca jdk:8 java -jar /sca/zipkin-server-2.23.2-exec.jar

第六步:通过如下指令查看服务是否已启动
docker ps
第七步:保存镜像并起各名字 (可选,假如要将镜像传给别人可以直接下面的操作)
docker save jdk:8 | gzip>linux-jdk8.gz
接收并执行load
docker load -i linux-jdk8.gz
FAQ:
 如何看docker中镜像? docker images
 如何删除docker中镜像?docker image rm 镜像名或imageId
 如何加载本地镜像? docker load –i 镜像名
 如何启动容器?docker run 。。。。。
 如何查看正在运行的容器?docker ps
 如何查看所有容器?(包含启动失败和停止容器)?docker ps –a
 如何停止正在运行容器? docker stop 容器id
 如何重启容器? docker restart 容器id
 如何删除处于终止状态的容器? docker container prune
 如何删除处于运行状态的容器(不推荐)? docker container rm –f 容器id
 如何查询启动容器的日志?docker container logs 容器id
 如何查看容器详细信息? docker container inspect 容器id
查看docker 容器选项信息? docker contianer

直接安装方式

:上传JDK安装包
:解压JDK文件

tar -xvf jdk-7u51-linux-x64.tar.gz

:配置环境变量
说明:修改Linux系统中环境变量需要修改/etc/profile文件
命令:vim /etc/profile
配置文件变量

#set java env
JAVA_HOME=/usr/local/src/java/jdk1.7.0_51
JAVA_BIN=/usr/local/src/java/jdk1.7.0_51/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

:环境变量生效:

source /etc/profile

:检测jdk:
java -version

安装Database软件

安装mysql数据库

第一步:在hub.docker.com上搜索mysql镜像
第二步:拉取指定版本的mysql

sudo docker pull mysql:8.0.23

第三步:检查mysql镜像

sudo docker images

第四步:启动运行mysql镜像 (docker run 用于启动一个容器)

sudo docker run -p 3306:3306 --name mysql \\
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \\
-v /usr/local/docker/mysql/conf:/etc/mysql \\
-v /usr/local/docker/mysql/logs:/var/log/mysql \\
-v /usr/local/docker/mysql/data:/var/lib/mysql \\
-e MYSQL_ROOT_PASSWORD=root \\
-d mysql:8.0.23

假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可

第五步:启动mysql

docker start mysql

第六步:查看docker启动的服务

docker ps

第七步:进入容器 (退出容器用exit)

sudo docker exec -it mysql bash

第八步:登陆

mysql -uroot -p

第九步:设置mysql开机自启动(可选)

docker update mysql --restart=always

FAQ
重启mysql:

 docker restart mysql

查看mysql安装路径:

  whereis mysql

创建mysql账户并为其设置权限

  create user ‘tony’@’%’identified by ‘tony’;
  grant all on *.* to ‘tony’@‘%’;

关闭防火墙:
sudo systemctl stop firewalld.service
重启docker:
sudo systemctl restart docker
######安装Redis 内存数据库
第一步:下载镜像文件

 docker pull redis 

第二步:创建redis实例并启动

创建redis配置文件目录:
mkdir -p /usr/local/docker/redis/conf
在配置文件录下创建redis.conf配置文件
(因为redis镜像中这个redis.conf是一个目录所以要先创建一个这个配置文件,否在我们本地挂载点也会变成一个目录):
touch /usr/local/docker/redis/conf/redis.conf
 sudo docker run -p 6379:6379 --name redis \\
-v /usr/local/docker/redis/data:/data \\
-v /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf \\
-d redis redis-server /etc/redis/redis.conf 

第三步:查看正在运行的进程

docker ps

第四步:控制台直接连接redis测试

docker exec -it redis bash

第五步:检测redis 版本

Redis-server –v

或者

redis-cli -v

第五步:登录redis(默认不需要密码)

redis-cli

或者

docker exec -it redis redis-cli

FAQ
停止redis:
docker stop redis
启动redis:
docker start redis
重启redis:
docker restart redis
查看redis版本:
docker exec -it redis redis-server -v

安装分布式中间件

安装Ngnix代理
  1. docker pull nginx:latest
  2. docker images
  3. docker run --name nginx -d nginx
    检测安装的内容docker exec nginx ls -l /etc/nginx

第四步:拷贝安装好的配置文件

docker cp -a nginx:/etc/nginx /usr/local/docker/nginx

这里是将docker中的nginx复制到宿主机的nginx目录

第五步:强制卸载刚刚安装的nginx

docker rm -f nginx

第六步:启动nginx容器,运行nginx镜像

sudo docker run -p 80:80 --restart always --name nginx \\
-v /usr/local/docker/nginx/:/etc/nginx/ \\
-d nginx

以上是关于Docker 环境部署的主要内容,如果未能解决你的问题,请参考以下文章

Docker 是怎么实现的?前端怎么用 Docker 做部署?

docker安装步骤及基于docker容器部署web应用LNMP服务器环境

docker 部署 coredns(内部域名解析)

docker 部署 coredns(内部域名解析)

gitlab,gitlab runner自动化部署docker容器

Docker快速搭建Node.js Express运行环境