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
posted @ 2025-03-20 11:08  小小爬虫  阅读(34)  评论(0)    收藏  举报