欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Docker实战

Docker实战

2025/5/23 18:37:02 来源:https://blog.csdn.net/sinat_15906013/article/details/148149892  浏览:    关键词:Docker实战

文章目录

  • 一、Docker架构
  • 二、Docker安装
    • 1.官方方式
    • 2.aliyun方式
      • 2.1 debian
      • 2.2 ubuntu
    • 3.linuxmirrors方式(推荐)
    • 4.1panel方式(强烈推荐)
      • 4.1 debian
      • 4.2 ubuntu
    • 5.安装docker-compose
  • 三、配置镜像源
    • 1.镜像源检测脚本
    • 2.配置加速源
    • 3.配置代理
    • 4.重启docker生效
    • 5.配置系统代理
  • 四、容器镜像服务
  • 五、macvlan:妈妈再也不用担心主机端口冲突
  • 六、watchtower:容器自动更新
  • 七、常见问题
    • 1.windows11 docker不断重启
    • 2.如何开放2375端口?
    • 3.如何更新docker存储位置
    • 4.如何卸载docker?
  • 八、相关文档

一、Docker架构

https://docs.docker.com/get-started/docker-overview/#docker-architecture
在这里插入图片描述

二、Docker安装

1.官方方式

https://docs.docker.com/engine/install/ubuntu/

//安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl start docker
systemctl enable docker

2.aliyun方式

https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker#59d024a3e32um

2.1 debian

#更新包管理工具
sudo apt-get update
#添加Docker软件包源
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable"
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker

2.2 ubuntu

#更新包管理工具
sudo apt-get update
#添加Docker软件包源
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker

3.linuxmirrors方式(推荐)

https://linuxmirrors.cn/#docker

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

4.1panel方式(强烈推荐)

https://1panel.cn/docs/installation/online_installation

4.1 debian

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

4.2 ubuntu

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

5.安装docker-compose

https://github.com/docker/compose/releases

curl -L "https://github.com/docker/compose/releases/download/v2.36.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

相关操作

docker-compose -f docker-compose.yml up -d
docker-compose -f docker-compose.yml stop
docker-compose -f docker-compose.yml down

三、配置镜像源

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

Docker 镜像库国内加速的几种方法

1.镜像源检测脚本

#!/bin/bash
#https://github.com/docker-practice/docker-registry-cn-mirror-test/blob/master/.github/workflows/ci.yaml
docker version
docker inforegistrys="
docker.901020.xyz
dockerhub.icu
docker.m.daocloud.io
docker.io
dockerproxy.com
docker.nju.edu.cn
docker.mirrors.sjtug.sjtu.edu.cn
docker.mirrors.ustc.edu.cn
dockerhub.timeweb.cloud
hub-mirror.c.163.com
huecker.io
noohub.ru
mirror.baidubce.com
mirror.gcr.io
registry-1.docker.io
registry.hub.docker.com
ua6hh03f.mirror.aliyuncs.com
"
image="library/nginx:1.25.1-alpine"for registry in $registrys
doecho ::group::Test $registry/$imagedocker pull $registry/$image \&& (echo -e "\033[32m$registry is good\033[0m" \; echo "::warning file=README.md,line=1,col=0::OK [ $registry ] is good") \|| (echo -e "\033[31m$registry is outdated\033[0m" \; echo "::error file=README.md,line=1,col=0::X [ $registry ] is outdated")docker rmi $registry/$image || trueecho ::endgroup::
done

2.配置加速源

注意tee会覆盖之前的配置,请备份后操作!!!

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.901020.xyz"],"insecure-registries": ["docker.901020.xyz"],
}
EOF

3.配置代理

注意tee会覆盖之前的配置,请备份后操作!!!

tee /etc/docker/daemon.json <<-'EOF'
{"proxies": {"http-proxy": "http://xxx.home.love:7890","https-proxy": "http://xxx.home.love:7890","no-proxy": "*.cn,127.0.0.0/8,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8"}
}
EOF

4.重启docker生效

systemctl daemon-reload
systemctl restart docker

5.配置系统代理

打开environment文件

nano /etc/environment

粘贴如下配置信息:

HTTPS_PROXY=http://xxx.home.love:7890
HTTP_PROXY=http://xxx.home.love:7890

重启生效

reboot now

四、容器镜像服务

https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard

//登录阿里云Docker
docker login --username=$MY_ALIYUN_DOCKER_USERNAME --password=$MY_ALIYUN_DOCKER_PASSWORD registry.cn-hangzhou.aliyuncs.com//登录官网Docker
docker login --username=$MY_OFFICIAL_DOCKER_USERNAME --password=$MY_OFFICIAL_DOCKER_PASSWORD//harbor
docker login --username=admin --password=Harbor12345 harbor.home.love//artifactory
docker login --username=admin --password=password artifactory.home.love

五、macvlan:妈妈再也不用担心主机端口冲突

https://docs.docker.com/engine/network/drivers/macvlan/

解决了一台主机映射端口可以重复,因为ip不一样了

docker network rm macvlan;
docker network create -d macvlan \
--subnet=192.168.128.0/17 --gateway=192.168.128.1 \
--ip-range=192.168.255.0/24 \
-o parent=eth0 macvlan

为了安全,默认禁用宿主机和macvlan网络相通,解决宿主机和macvlan不通的问题

ip link add mynet link eth0 type macvlan mode bridge
ip addr add 192.168.255.254 dev mynet
ip link set mynet up
ip route add 192.168.255.253 dev mynet

docker通过设置–network、–ip完成macvlan设置

docker rm -f openresty;
docker run --name openresty \--network macvlan --ip=192.168.255.253 -dp 80:80 \-e TZ=Asia/Shanghai \-v /root/openresty/conf/conf.d:/usr/local/openresty/nginx/conf/conf.d \-v /root/openresty/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf \-v /root/openresty/logs:/usr/local/openresty/nginx/logs \--restart=always \
openresty/openresty:alpine

docker-compose通过设置networks.macvlan.ipv4_address完成macvlan设置

# https://github.com/firefly-iii/docker/blob/main/docker-compose-importer.yml
version: '3.3'#
# The Firefly III Data Importer will ask you for the Firefly III URL and a "Client ID".
# You can generate the Client ID at http://localhost/profile (after registering)
# The Firefly III URL is: http://app:8080
#
# Other URL's will give 500 | Server Error
#services:app:image: fireflyiii/core:latesthostname: appcontainer_name: firefly_iii_core# networks:#   - firefly_iiirestart: alwaysvolumes:- firefly_iii_upload:/var/www/html/storage/uploadenv_file: .envports:- '80:8080'networks:macvlan:ipv4_address: 192.168.255.250importer:image: fireflyiii/data-importer:latesthostname: importerrestart: alwayscontainer_name: firefly_iii_importer# networks:#   - firefly_iiiports:- '81:8080'depends_on:- appenv_file: .importer.envnetworks:macvlan:ipv4_address: 192.168.255.240cron:## To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable and replace REPLACEME below# The STATIC_CRON_TOKEN must be *exactly* 32 characters long#image: alpinecontainer_name: firefly_iii_cronrestart: alwayscommand: sh -c "echo \"0 3 * * * wget -qO- http://192.168.255.250:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"# networks:#   - firefly_iii
volumes:firefly_iii_upload:firefly_iii_db:networks:
#   firefly_iii:
#     driver: bridgemacvlan:external: true

六、watchtower:容器自动更新

https://github.com/containrrr/watchtower

https://containrrr.dev/watchtower/

手动运行一次

docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once

定期运行

docker rm -f watchtower;
docker run -d \
--name watchtower \
-e TZ="Asia/Shanghai" \
# -e REPO_USER= \
# -e REPO_PASS= \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart always \
containrrr/watchtower \
--schedule "0 0 1 * * FRI" --cleanup

七、常见问题

1.windows11 docker不断重启

Current version: 4.30.0 (149282)
New version: 4.33.1 (161083) 频繁重启
回滚到之前版本即可,不知道现在还有没有问题了

2.如何开放2375端口?

nano /lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H 0.0.0.0:2375

3.如何更新docker存储位置

注意tee会覆盖之前的配置,请备份后操作!!!

tee /etc/docker/daemon.json <<-'EOF'
{"graph":"/mnt/docker"
}
EOF

4.如何卸载docker?

https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine

八、相关文档

官网:https://www.docker.com/

镜像仓库:https://hub.docker.com/

docker命令:https://docs.docker.com/reference/cli/docker/

docker run命令:https://docs.docker.com/reference/cli/docker/container/run/

docker compose命令:https://docs.docker.com/reference/cli/docker/compose/

dockerd命令:https://docs.docker.com/reference/cli/dockerd/

dockerfile文件编写:
https://docs.docker.com/reference/dockerfile/

docker-compose文件编写:
https://docs.docker.com/reference/compose-file/
https://docs.docker.com/compose/compose-file/compose-file-v3/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词