目录
初识 Docker
docker概念
安装docker
docker架构
Docker 命令
进程相关命令
镜像相关命令
容器相关命令
Docker 容器数据卷
数据卷概念及作用
配置数据卷
配置数据卷容器
数据卷小结
Dockerfile
Docker 镜像原理
Dockerfile概念及作用
Dockerfile关键字
案例
Docker 应用部署
MySQL部署
Nginx部署
Redis部署
Docker 服务编排
服务编排概念
Docker Compose 概述
案例
Docker 私有仓库
搭建私有仓库
上传镜像到私有仓库
从私有仓库拉取镜像
Docker相关概念
1、yum 包更新到最新
yum update
2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
5、 查看docker版本,验证是否验证成功
docker -version
Dochub网址:https://hub.docker.com
1、搜索mysql镜像
docker search mysql
2、拉取mysql镜像
docker pull mysql:5.6
3、创建容器,设置端口映射、目录映射
在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.6
参数说明:
4、进入容器,操作mysql
docker exec –it c_mysql /bin/bash
5、使用外部机器连接容器中的mysql
注意:
1、修改服务器mysql数据库user表,配置为允许远程访问。命令如下:
update user set host = '%' where user = 'root';
2、服务器要关闭防火墙
关闭防火墙:
systemctl stop firewalld.service
开启防火墙:
systemctl start firewalld.service
开启开机启动:
systemctl enable firewalld.service
关闭开机启动:
systemctl disable firewalld.service
查看防火墙状态:
systemctl status firewalld
firewall-cmd --state
3、各种云服务器要记得暴露端口
Tomcat部署
1、搜索tomcat镜像
docker search tomcat
2、拉取tomcat镜像
docker pull tomcat
3、创建容器,设置端口映射、目录映射
在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
- 参数说明:
4、使用外部机器访问tomcat
1、搜索nginx镜像
docker search nginx
2、拉取nginx镜像
docker pull nginx
3、创建容器,设置端口映射、目录映射
在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
- 参数说明:
4、使用外部机器访问nginx
1、搜索redis镜像
docker search redis
2、拉取redis镜像
docker pull redis:5.0
3、创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
4、使用外部机器连接redis
redis-cli.exe -h 192.168.149.135 -p 6379
1、安装Docker Compose
Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
查看版本信息
docker-compose -version
2、卸载Docker Compose
二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
1. 创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
2. 编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
3. 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
4. 在./nginx/conf.d目录下 编写itheima.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
5. 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up
6. 测试访问
http://192.168.149.135/hello
1、拉取私有仓库镜像
docker pull registry
2、启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
3、打开浏览器 输入地址
http://私有仓库服务器ip:5000/v2/_catalog
看到{"repositories":[]} 表示私有仓库 搭建成功
4、修改daemon.json
vim /etc/docker/daemon.json
在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip
{"insecure-registries":["私有仓库服务器ip:5000"]}
5、重启docker 服务
systemctl restart docker
docker start registry
1、标记镜像为私有仓库的镜像
docker tag centos:7 私有仓库服务器IP:5000/centos:7
2、上传标记的镜像
docker push 私有仓库服务器IP:5000/centos:7
docker pull 私有仓库服务器ip:5000/centos:7