docker常见应用
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 app:1_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 app:1_0 > app_image.tar
导入镜像
docker load -i app_image.tar
删除镜像
docker rmi app:1_0
查看docker0网卡的宿主机ip
ip addr show docker0
创建并运行容器(-d 后台运行)
docker run -d -p 8085:8085
--restart=unless-stopped
-v /mnt/app/:/mnt/app/
-v /home/app:/app
--add-host=host.docker.internal:172.17.0.1
--name app app:1_0
查看docker 容器
docker ps -a
关闭docker容器
docker stop app
删除容器
docker rm app
启动docker 容器
docker start app
查看应用日志
docker logs -f --tail=500 app
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: 替换证书密钥处
exit # 退出容器
docker restart es7 # 重启容器
docker exec -it es7 bash # 再次进入容器
bin/elasticsearch-setup-passwords interactive # 设置es密码(所有密码都设置一样)
补充
docker安装
来自腾讯云镜像服务
sudo apt-get update
sudo apt-get install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/ \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
设置国内镜像
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.1ms.run",
"https://docker.ketches.cn"
]
}
重启docker服务并验证
sudo systemctl start docker
sudo docker info
不积跬步无以至千里

浙公网安备 33010602011771号