docker 阿里镜像
https://xxx.mirror.aliyuncs.com
docker 代理镜像
dk.nastool.de/library
配置代理镜像
vim /etc/docker/daemon.json
{"registry-mirrors" : ["https://xxx.mirror.aliyuncs.com","https://dk.nastool.de/library",...]
}
编写Dockerfile
使用一个基础镜像,比如ubuntu
FROM ubuntu:latest
将字体文件复制到容器中
COPY windows_fonts /usr/share/fonts/
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" > /etc/timezone &&
apt-get update &&
apt-get install -y libreoffice &&
apt-get install -y openjdk-8-jdk &&
apt-get clean &&
rm -rf /var/lib/apt/lists/* &&
fc-cache -fv
设置你的工作目录和命令
WORKDIR /app
COPY . /app
ENTRYPOINT ["sh","-c","java -jar app.jar"]
构建镜像(Dockerfile)
docker build -t zhaopin:1_0 .
docker build -t zhaopin:2_0 .
拉取镜像(官网已不可用)
docker pull mysql:5.7 #官网已失效
docker pull xxx.mirror.aliyuncs.com/mysql:5.7 # 阿里镜像
镜像别名
docker tag xxx.mirror.aliyuncs.com/mysql:5.7 ali-mysql
查看docker镜像
docker images
导出镜像
docker save zhaopin:1_0 > zhaopin_image.tar
导入镜像
docker load -i zhaopin_image.tar
删除镜像
docker rmi zhaopin:1_0
查看docker0网卡的宿主机ip
ip addr show docker0
创建并运行容器(-d 后台运行)
docker run -d -p 8085:8085
--restart=unless-stopped
-v /mnt/zhaopin/lanzhongpro:/mnt/zhaopin/lanzhongpro
-v /home/zhaopin:/app
--add-host=host.docker.internal:172.17.0.1
--name zhaopin zhaopin:1_0
查看docker 容器
docker ps -a
关闭docker容器
docker stop zhaopin
删除容器
docker rm zhaopin
启动docker 容器
docker start zhaopin
查看应用日志
docker logs -f --tail=500 zhaopin
mysql服务案例(有密码)
docker run -d
-p 3306:3306
--name mysql57
-v /home/mysql/data:/var/lib/mysql
-v /home/mysql/config/my.cnf:/etc/mysql/my.cnf
-v /home/mysql/log:/var/log/mysql
--restart=unless-stopped
-e MYSQL_ROOT_PASSWORD=密码 dk.nastool.de/library/mysql:5.7
导入sql文件
docker exec -it mysql57 /bin/bash
mysql -uroot -p
use your_database;
source /var/lib/mysql/your_database.sql # 映射到本地 /home/mysql/data/your_database.sql
导出sql文件
docker exec -it mysql57 /bin/bash
mysql -uroot -p
use your_database;
mysqldump -u root -p your_database > /var/lib/mysql/your_database.sql # 映射到本地 /home/mysql/data/your_database.sql
springboot 应用服务案例(yml中使用其它服务时,ip使用host.docker.internal)
docker run -d -p 8079:8079
--restart=unless-stopped
-v /workdir:/workdir
--add-host=host.docker.internal:172.17.0.1
--name springboot_sever dk.nastool.de/library/openjdk:8-jre-slim
sh -c "cd /workdir && java -jar app.jar"
redis服务案例(redis密码在redis.conf中)
docker run -d -p 6379:6379
--name myredis --privileged=true
-v /home/redis/redis.conf:/etc/redis/redis.conf
-v /home/redis/data:/data:rw
--restart=unless-stopped
dk.nastool.de/library/redis redis-server /etc/redis/redis.conf
--appendonly yes
elasticsearch服务案例
docker run -d
--name es7
-e "discovery.type=single-node"
-p 59200:9200
-p 59300:9300
-v /home/es_docker/data:/usr/share/elasticsearch/data
--restart=unless-stopped
dk.nastool.de/library/elasticsearch:7.6.2
设置密码
docker exec -it es7 bash # 进入容器
bin/elasticsearch-certutil ca # 生成证书(如果让设置输出文件名就直接回车,如果设置证书密钥就输入证书密钥)
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 # 生成节点证书(同上)
chmod 660 elastic-stack-ca.p12 elastic-certificates.p12 # 证书授权
mv elastic-certificates.p12 config/ # 移动证书到配置文件夹
vi config/elasticsearch.yml # 编辑配置文件
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.keystore.password: 替换证书密钥处
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.password: 替换证书密钥处