docker例子

portainer

1
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer

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
#安装nginx 容器
docker pull nginx:1.10
创建一个测试容器,用来复制配置文件
docker run -d --name nginx_test nginx:1.10
#复制配置文件
docker container cp nginx_test:/etc/nginx .
#修改目录
mv nginx conf
#创建容器
docker run -p 80:80 --privileged=true --name nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/conf:/etc/nginx \
-d nginx:1.10

docker run -p 80:80 --privileged=true --name nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/conf:/etc/nginx \
-d nginx:1.10

docker run -p 80:80 --privileged=true --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

mysql

Linux系统

1
2
3
4
5
6
7
docker run -p 3306:3306 --name mysql \
-v /Users/bxs/docker/mysql/log:/var/log/mysql \
-v /Users/bxs/docker/mysql/data:/var/lib/mysql \
-v /Users/bxs/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=rootroot \
--privileged=true \
-d mysql:5.7

mac系统

1
2
3
4
5
6
7
docker run -p 3306:3306 --name mysql \
-v /Users/bxs/docker/mysql/log:/var/log/mysql \
-v /Users/bxs/docker/mysql/data:/var/lib/mysql \
-v /Users/bxs/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=rootroot \
-u root \
-d mysql:5.7

/mydata/mysql/conf/my.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
#服务器默认编码格式
character-set-server=utf8mb4
#服务器默认字符集
collation-server=utf8mb4_general_ci
# 跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置
skip-character-set-client-handshake
# 跳过域名解析,只能使用127.0.0.1
skip-name-resolve
1
2
3
4
5
6
7
docker run -p 3306:3306 --name mysql \
-v /Users/pan/docker/mysql/log:/var/log/mysql \
-v /Users/pan/docker/mysql/data:/var/lib/mysql \
-v /Users/pan/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=rootroot \
-u root \
-d mysql:8

spring boot

创建一个spring boot 项目

打包 mvn clean package

创建Dockerfile文件

1
2
3
4
FROM java:openjdk-8-jre-alpine
WORKDIR /home
COPY ./*.jar /home
ENTRYPOINT ["java", "-jar", "*.jar"]

构建镜像

1
docker buildx build --tag demo:1.0 .

创建并运行容器

1
docker run -d --name demo -p 8080:8080 demo:1.0

PHP7.4-FPM

1
docker pull php:7.4-fpm

创建容器

1
2
3
docker run -p 9000:9000 --name  php74fpm 
-v /Users/pan/docker/nginx/html:/usr/share/nginx/html
--privileged=true -d php:7.4-fpm

注意事项,需要加入–privileged=true,让容器能访问外部文件

bitwarden

1
docker run -d --name bitwarden -p 8002:80 -v /root/data/docker_data/bitwarden/:/data/ vaultwarden/server:1.27.0-alpine

RabbitMQ

1
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 -d rabbitmq:management

redis

1
2
mkdir -p /root/redis/conf
touch /root/redis/conf/redis.conf
1
2
3
4
5
docker run -p 6379:6379 --name redis \
-v /root/redis/data:/data \
-v /root/redis/conf/redis.conf:/etc/redis/redis.conf \
--restart=always \
-d redis redis-server /etc/redis/redis.conf
1
docker run -p 6379:6379 --name redis -d redis redis-server

elasticsearch

1
2
3
4
5
6
7
8
9
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "network.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml

echo "network.host: 0.0.0.0">>config/elasticsearch.yml

echo "network.host: 0.0.0.0" >> /Users/pan/docker/elasticsearch/config/elasticsearch.yml

Chmod -R 777 /mydata/elasticsearch/ 保证权限问题
1
2
3
4
5
6
7
8
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e Es_JAVA_OPTS="-Xms65m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged=true \
-d elasticsearch:7.4.2
1
2
3
4
5
6
7
8
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e Es_JAVA_OPTS="-Xms65m -Xmx128m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged=true \
-d registry.cn-hangzhou.aliyuncs.com/panyian/elasticsearch:7.4.2

kibana

ELASTICSEARCH_HOSTS的参数为elasticsearch的地址

1
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.10.10:9200 -p 5601:5601 -d kibana:7.4.2

/usr/share/kibana/config/kibana.yml

1
2
3
4
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker run --name kibana \
-v /Users/pan/docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
-e ELASTICSEARCH_HOSTS=http://192.168.10.10:9200 \
-p 5601:5601 \
-d kibana:7.14.2

docker run --name kibana \
-v /Users/pan/docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
-p 5601:5601 \
-d kibana:7.14.2

docker run --name kibana7142 \
-e ELASTICSEARCH_HOSTS=http://172.17.0.2:9200 \
-p 5601:5601 \
-d kibana:7.14.2

docker run --name kibana762 \
-v /Users/pan/docker/kibana762/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-e ELASTICSEARCH_HOSTS=http://172.17.0.2:9200 \
-p 5601:5601 \
-d kibana:7.6.2
1
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.4.2