Docker

目录

初识 Docker

docker概念

安装docker

docker架构

Docker 命令

进程相关命令

镜像相关命令

容器相关命令

Docker 容器数据卷

数据卷概念及作用

配置数据卷

配置数据卷容器

数据卷小结

Dockerfile

Docker 镜像原理

Dockerfile概念及作用

Dockerfile关键字

案例

Docker 应用部署

MySQL部署

Nginx部署

Redis部署

Docker 服务编排

服务编排概念

Docker Compose 概述

案例

Docker 私有仓库

搭建私有仓库

上传镜像到私有仓库

从私有仓库拉取镜像

Docker相关概念


初识 Docker

docker概念

 

安装docker

  Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS 7 安装Docker。官网:https://www.docker.com
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

docker架构

 

Docker 命令

进程相关命令

 

镜像相关命令

 

容器相关命令

 

Docker 容器数据卷

数据卷概念及作用

配置数据卷

配置数据卷容器

 

数据卷小结

Dockerfile

Docker 镜像原理

 

 

Dockerfile概念及作用

 Dochub网址:https://hub.docker.com

Dockerfile关键字

案例

 

Docker 应用部署

MySQL部署

 

 

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

参数说明:

  • -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
  • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
  • -v $PWD/data:/var/lib/mysql :将主机当前目录下data目录挂载到容器的 /var/lib/mysql 。数据目录
  • -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。

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 

- 参数说明:

  •   -p 8080:8080:将容器的8080端口映射到主机的8080端口
  •    -v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps

4、使用外部机器访问tomcat

Nginx部署

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

- 参数说明:

  • -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
  • -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录

4、使用外部机器访问nginx

Redis部署

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

Docker 服务编排

服务编排概念

Docker Compose 概述

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

Docker 私有仓库

搭建私有仓库

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

Docker相关概念

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值