04.Docker 应用
04.Docker 应用
Docker 应用部署
MySQL 部署
搜索 mysql 镜像和拉取镜像
1
2
docker search mysql
docker pull mysql:5.6
创建容器,设置端口映射、目录映射
1
2
3
4
5
6
7
8
9
10
11
12
## 在/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=123456 \
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=123456:初始化 root 用户的密码。
进入容器,操作 mysql
1
2
3
4
docker exec -it c_mysql /bin/bash
mysql -uroot -p123456
show databases;
create database db1;
使用外部机器连接容器中的 mysql
Tomcat 部署
1
2
3
4
5
6
7
8
9
10
11
12
13
docker search tomcat
docker pull 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
Nginx 部署
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 搜索nginx镜像
docker search nginx
# 拉取nginx镜像
docker pull nginx
# 创建容器,设置端口映射、目录映射
# 在/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 'remoteaddr−remote_user [timelocal]" 'statusbody_bytes_sent " '"
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。日志目录
使用外部机器访问 nginx
Docker 安装 Redis
- Docker 官方镜像仓库查找 Redis :https://hub.docker.com/
- Docker run
1
docker run -d -p 6379:6379 --name redis redis:latest
安装 Wordpress
- Docker-compose. Yml
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
29
30
31
32
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
安装 ELK
1
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
Docker 常用 image
ubuntu
Android
GitHub - budtmo/docker-android: Android in docker solution with noVNC supported and video recording
检查和开启 Virtualization
- Ubuntu OS 不用操作
- Mac 查看:
sysctl kern.hv_support
如果为 1 说明就是同时支持 VT-x 和 VT-d。在 mac 下,如果 cpu 支持的话,各项虚拟化技术是默认打开的,因此不存在像 windows 一样要在 BIOS 中手动打开的情况。
Windows
Clash
本文由作者按照 CC BY 4.0 进行授权