Docker 环境部署
Posted brent
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 环境部署相关的知识,希望对你有一定的参考价值。
安装Docker容器
Docker 官方安装地址
https://docs.docker.com/engin...
第一步:安装yum-utils(管理repository及扩展包的工具,可提供yum操作性能)
sudo yum install -y yum-utils
- sudo让普通用户具有普通管理元的权限执行操作
- 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 加速设计
- 创建目录: sudo mkdir -p /etc/docker
- 镜像设置: sudo tee /etc/docker/daemon.json <<-\'EOF\'
{
"registry-mirrors": ["https://ar2qkqym.mirror.aliyuncs.com"]
}
EOF - 重新加载配置: sudo systemctl daemon-reload
重启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代理
- docker pull nginx:latest
- docker images
- 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服务器环境