python| Docker的安装
2021-03-12 06:31
标签:权限 错误 方式 pool nbsp gzip remote logging 端口映射 启动docker服务 停止docker服务 重启docker服务 查看docker服务状态 开机启动docker服务 查看docker 日志 查看本地镜像 搜索镜像 下载镜像 删除镜像 创建容器 注意 : 创建后台运行的容器 查看容器 进入容器 启动容器 停止容器 删除容器 容器其他信息 查看容器日志 Errcode: 13 - Permission denied) 数据卷的简介 配置数据卷 简介 配置数据卷容器 数据卷目录 位置查找 查找宿主机数据目录与容器对应目录 1 搜索 mysql 2 拉取mysql 镜像 3 创建容器 参数说明 Mysql 5.7 默认配置文件 docker 中配置默认路径 1 搜索tomcat镜像 2 拉去tomcat 镜像 3 创建容器, 设置端口映射, 目录映射 Nginx 原始配置文件 搜索nginx镜像 拉去nginx 镜像 创建nginx 容器 准备好 nginx 配置文件 events { http { } 参数说明 1 搜索 Redis 2 拉去镜像 3 创建容器 映射端口 容器转镜像 dockerfile 关键字 构建镜像 1 创建 docker-compose 目录 2 编写 docker-compose.yml文件 3 创建./nginx/conf.d 目录 4 在 ./nginx/conf.d 目录下 编写 nginx 的 conf 文件. 文件必须是 conf 文件 名字无所谓 5 在 ~/docker-compose 目录下 使用 docker-compose 启动容器 6 测试访问 python| Docker的安装 标签:权限 错误 方式 pool nbsp gzip remote logging 端口映射 原文地址:https://www.cnblogs.com/huangjiangyong/p/14089105.html1 Docker的安装
1
2
3
4
5
6
7
8
9
10
# 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 -v2 Docker 架构
3 配置镜像加速器
4 Docker 服务相关命令
1
systemctl start docker
1
systemctl stop docker
1
systemctl restart docker
1
systemctl status docker
1
systemctl enable docker
1
docker logs 容器名
5 Docker 镜像相关命令
1
2
3
4
5
6
docker images
# REPOSITORY 指的是容器
# TAG 指的是版本号
# IMAGE ID 镜像的id
# CREATED 创建时间
# SIZE 大小
1
docker search redis
1
2
3
4
5
docker pull redis
# 不写版本号 默认是 lastest
# 我们在hub.docker.com 搜索 软件版本号
docker pull redis:5.0
# 下载 5.0 版本的 redis
1
2
3
4
5
6
7
8
# id 删除
docker rmi 镜像id
# 版本删除
docker rmi redis:版本
# 查看所有镜像的id
docker images -q
# 删除所有镜像
docker rmi `docker images -q`6 Docker 容器相关命令
1
2
3
4
5
6
7
8
9
10
# 1 查看镜像
docker images
# 创建容器
docker run -it --name=c1 mysql:5.7 /bin/bash
# -i 表示 容器一直运行着
# -t 表示 给容器加个伪终端
# -d 以守护式 模式创建容器
# -name 表示 起名字 后面可以 = 或者空格
# 指定镜像 mysql:5.7
# /bin/bash 表示进入容器时的初始化指令 默认是 /bin/bash
1
# 使用exit 退出容器
1
2
3
# 使用 -it 创建的容器
# 创建成功会立马进入容器
# 在退出容器后会立马停止容器
1
2
# 创建的容器会在后台运行.
docker run -id --name=m2 mysql:5.7
1
2
3
4
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
1
docker exec -it 容器名 /bin/bash
1
docker start 容器名
1
docker stop 容器名
1
2
docker rm 容器名
# 开启的容器是不能被删除
1
docker inspect 容器名
1
docker logs 容器名
容器启动错误解决
1
2
# 在创建容器时 加上
-–privileged=true7 Docker 容器的 数据卷
数据卷容器
1
2
# 查找容器的具体信息
docker inspect 容器名小结
8 Docker的应用部署
Docker 部署 mysql
1
docker search mysql
1
docker pull mysql:5.7
1
2
3
# 1 在/root 下创建mysql 目录 用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
1
2
3
4
5
6
7
8
docker run -id \
-p 3306: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=951228 \
mysql:5.7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
1
/usr/my.cnf
Docker 部署 Tomcat
1
# 注意 需要进入 tomcat 容器内 把 webapps.disp 改名为 webapps , 不然访问不到主页
1
docker search tomcat
1
docker pull tomcat
1
2
mkdir ~/tomcat
cd ~/tomcat
1
2
3
4
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
Docker 部署 Nginx
1
2
# 注意, 首先要创建nginx.conf 文件 用于管理 容器的nginx
# 在 宿主nginx 文件夹下创建/conf/nginx.conf 用于映射 容器nginx配置文件
1
2
1
docker search nginx
1
docker pull nginx
1
2
3
4
5
6
mkdir ~/nginx
cd mkdir ~/nginx
# 创建 conf 文件夹
mkdir conf
# 在conf 文件夹下创建 nginx.conf 文件, 粘贴下面内容
vim nginx.conf
1
2
3
4
5
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_connections 1024;
}
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;
1
2
3
4
5
6
7
8
9
10
- 创建nginx 容器
```bash
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
1
2
3
4
# -p 80:80 宿主机80 端口 映射 容器的80端口
# -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf 使用宿主机 nginx.conf 配置文件映射到 容器的配置文件
# -v $PWD/logs:/var/log/nginx 挂在log 目录文件
# -v $PWD/html:/usr/share/nginx/htmlDocker 部署 Redis
1
docker search redis
1
docker pull redis:5.0
1
docker run -id --name=c_redis -p 6379:6379 redis:5.0
9 Docker 镜像原理
10 Docker 镜像制作
第一种方式
第二种方式
Dockerfile 案例1
1
2
3
docker built -f centos_dockerfile -t itheima_centos:1.0
# -f 找到 dockerfile 文件
# -t 指定 新镜像的名称及版本Dockerfile 案例2
11 Docker的服务编排
介绍
Docker Compose
1 安装 Docker Compose
1
2
3
4
5
6
# Compose 目前已经完全支持Linux , Macos 和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 -version2 卸载 Docker Compose
1
2
# 而今之宝方式安装的, 删除二进制文件即可
rm /usr/local/bin/docker-compose3 使用
1
2
mkdir ~/docker-compose
cd ~/docker-compose
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: ‘3‘
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
valumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
1
2
mkdir -p ./nginx/conf.d
# -p 表示是在父文件夹
1
2
3
4
5
6
7
8
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
1
docker-compose up
1
直接访问 nginx
12 Docker 私有仓库
一 私有仓库的搭建
1
2
3
4
5
6
7
8
9
10
11
12
# 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
2
3
4
5
# 1 标记镜像为私有仓库镜像
docker tag centos:7 私有仓库服务器ip"5000/contos:7
# 2 上传标记镜像
docker push 私有仓库服务器ip:5000/centos:7三 私有仓库的镜像拉到本地
1
2
docker pull 仓库ip:5000/centos:7
# 拉取镜像到本地13 Docker 与 虚拟机的对比
Docker 容器虚拟化 与 创痛虚拟机比较