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文件
详解:https://www.cnblogs.com/kreo/p/4423362.html
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
原文链接:https://www.cnblogs.com/zhuye2333/p/12844935.html