Docker简介、安装以及应用部署
docker是一种容器技术,解决软件跨环境迁移的问题
docker安装
1.yun包更新
sudo yum update
2.安装需要的软件包,yun-util提供的yum-config-manager功能
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源头为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker
sudo yum install docker-ce
5.查看docker版本
docker –v
docker配置国内镜像
1.编辑 docker 的 daemon.json 配置文件
vi /etc/docker/daemon.json
2.配置如下内容
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
3.重启docker
systemctl restart docker
docker服务相关命令:
1.启动、停止,重启、状态docker服务
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
2.设置开机启动docker服务
systemctl enable docker
docker镜像相关命令:
1.查看镜像
docker images
docker images -q #查看所有镜像id
2.搜索镜像
docker search 镜像名称
3.拉取镜像:从docker仓库下载镜像到本地,镜像名称格式为 名称:版本号 ,如果版本号不指定则是最新版的版本。可去docker hub搜索对象镜像查看版本
docker pull 镜像名称
4.删除镜像
docker rmi 镜像id
docker rmi 'docker images -q' #删除所有本地镜像
docker容器相关命令
1.查看容器
docker ps #查看正在运行的容器
docker ps -a #查看所有容器
进入容器:docker exec 参数 #退出容器,,容器不会关闭
2.创建并启动容器
docker run 参数
例:docker run –it –name=名字 镜像名称:版本
3.启动容器
docker start 容器名/id
4.关闭容器
docker stop 容器名/id
5.删除容器
docker rm 容器名/id
docker rm ‘docker ps -aq’
不能够删除正在运行的容器
6.查看容器信息
docker inspect 容器名/id
docker容器的数据卷
思考:docker容器删除后在容器中产生的数据也会随之删除
docker容器和外部机器之间不能够直接交换文件
容器之间想要进行数据交互
数据卷:
数据卷是宿主机中的一个目录或者文件
当个容器目录和数据卷绑定后,对方修改会立即同步
一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷
数据卷的作用:
容器数据持久化
外部机器和容器之间的通信
容器之间数据交换
配置数据卷
1.创建容器时,使用-v参数设置数据卷
docker run … -v 宿主机目录(文件):容器内目录(文件)
2.创建并挂载
docker run –it --name=c1 –v /root/data:/root/data_container centos:7 /bin/bash
echo itcast > a.txt 将itcast写入a.txt文件
挂载到多个数据卷:
数据卷容器
多容器进行数据交换
- 多个容器挂载到同一个数据卷
- 数据卷容器
- 创建启c3数据卷容器,使用-v参数,设置数据卷
配置数据卷容器
1.创建启c3数据卷容器,使用-v参数,设置数据卷
docker run –it –name=c3 –v /volume centos:7 /bin/bash
2.创建启动c1 c2容器,使用—volumes-from参数设置数据卷
docker run –it –name=c1 –volumes-from c3 centos:7 /bin/bash
docker run –it –name=c2 –volumes-from c3 centos:7 /bin/bash
docker应用部署
mysql部署
1.搜索mysql镜像
docker search mysql
2.拉取mysql镜像
docker pull mysql:5.6
3.创建容器
docker run –p 3306:3306 –name mysql
-v /zzyyuse/mysql/config:/etc/mysql/conf.d
-v /zzyyuse/mysql/logs:/logs
-v /zzyyuse/mysql/data:/var/lib/mysql
-e mysql_root_password=123456
-d mysql:5.6
4.操作容器中的mysql
docker exec –it mysql容器id /bin/bash
5.登录mysql
6.外部工具连接mysql
主机地址是:虚拟的的ip地址
连接成功即可在windows环境下操作虚拟机中docker中的mysql
7.导出docker中mysql的数据
docker exec mysql容器id sh –c ‘mysqldump –all-databases –uroot –p”123456”’ > /zzyyuse/all-database.sql
tomcat部署
1.查找镜像
docker search tomcat
2.拉取tomcat镜像
docker pull tomcat
3.使用tomcat镜像创建容器
docker run –it –p 8080:8080 tomcat
-p 主机端口:docker容器端口
-p 随机分配端口
i 交互
t 终端
redis部署
1.查找镜像
docker search redis
2.拉取tomcat镜像
docker pull redis:3.2
3.使用redis镜像创建容器
docker run –p 6379:6379
-v /zzyyuse/myredis/data:/data
-v /zzyyuse/myredis/cof/redis.conf:/usr/local/etc/redis/redis.conf
-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
--appendonly yes
4.在主机/zzyyuse/myredis/conf/redis.conf 目录下新建redis.conf文件
vim /zzyyuse/myredis/conf/redis.conf/redis.conf
配置redis.conf文件
详解:
5.运行redis
docker exec –it redis容器id redis-cli
6.测试持久化文件是否生成
nginx部署
1.下载nginx镜像
dcker pull nginx
docker images
2.创建挂载目录
mkdir -p /data/nginx/{conf,conf.d,html,logs}
3.编写nginx.conf配置文件,并放在文件夹中
# for more information on configuration, see:
# * official english documentation: http://nginx.org/en/docs/
# * official russian documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# load dynamic modules. see /usr/share/nginx/readme.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# load modular configuration files from the /etc/nginx/conf.d directory.
# see http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 182.254.161.54;
root /usr/share/nginx/html;
# load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://pic;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
upstream pic{
server 182.254.161.54:8088 weight=5;
server 182.254.161.54:8089 weight=5;
}
}
4.启动容器
docker run --name mynginx -d -p 82:80
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx/logs:/var/log/nginx
-d docker.io/nginx
5.查看启动的容器
docker ps
推荐阅读
-
Docker简介、安装以及应用部署
-
python import时OSError: [WinError 193] %1 不是有效的 Win32 应用程序以及pytorch安装时的问题
-
Docker部署Tomcat及Web应用的实现
-
Docker虚拟化容器技术简介及安装/卸载
-
node.js安装和配置环境以及部署项目的方法介绍(windows系统下)
-
使用Docker来加速构建Android应用的基本部署思路解析
-
SharePoint 2007图文开发教程(1) 简介,安装,配置及创建Web应用程序
-
docker部署Asp.net core应用的完整步骤
-
使用Docker部署 spring-boot maven应用的方法
-
Ubuntu Docker 的安装部署及简单应用