04.Docker 应用

Docker 应用部署

MySQL 部署

搜索 mysql 镜像和拉取镜像

docker search mysql
docker pull mysql:5.6

创建容器,设置端口映射、目录映射

## 在/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

参数说明:

进入容器,操作 mysql

docker exec -it c_mysql /bin/bash
 mysql -uroot -p123456
 show databases;
 create database db1;

使用外部机器连接容器中的 mysql

Tomcat 部署

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 部署

# 搜索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

参数说明:

器的 :/etc/nginx/nginx.conf。配置目录

使用外部机器访问 nginx

Docker 安装 Redis

docker run -d -p 6379:6379 --name redis redis:latest

安装 Wordpress

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

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

如果为 1 说明就是同时支持 VT-x 和 VT-d。在 mac 下,如果 cpu 支持的话,各项虚拟化技术是默认打开的,因此不存在像 windows 一样要在 BIOS 中手动打开的情况。

Windows

Clash