国内镜像源:
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"https://registry.cn-hangzhou.aliyuncs.com"
]
}
centos被和谐了,服务器使用ubuntu24
sudo apt update -y
sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update -y
sudo apt upgrade -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ung2thfc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo apt-get install docker-compose -y
查看安装是否成功
docker --version
docker-compose --version
常用命令:
查看启动的容器日志:
docker logs -f xxx
查看容器详细信息:
docker inspect xxx
导出镜像:
docker save -o 【tar包名称】 【镜像名称】 :【镜像tag】
docker save -o nginx.tar nginx:v1
导入镜像:
docker load -i 【tar包名】
docker load -i nginx.tar
构建镜像:
docker build -t 【镜像名称】 :【镜像tag】 .
docker build -t myapp-image:latest .
创建网络:
docker network create 【网络名称】
docker network create my-network
删除全部容器:
docker rm -f $(docker ps -aq)
删除全部镜像:
docker rmi $(docker images -q) -f
清理无用的docker资源:
docker system prune
镜像仓库(docker官方仓库已被墙):
以下两种都可以:
docker pull m.daocloud.io/docker.io/mysql:8.0.29
安装常用软件:
安装mysql: Docker Hub
# 5.7
docker pull mysql:5.7.38
docker run --name mysql --restart=always -p 3306:3306 -v /opt/docker-data/mysql:/var/lib/mysql -v /opt/docker-data/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:5.7.38 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 8
#docker pull mysql:8.0.29
docker run --name mysql8 --restart=always -p 3306:3306 -v /opt/docker-data/mysql8/data:/var/lib/mysql -v /opt/docker-data/mysql8/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:8.0.29 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --lower_case_table_names=1
开启远程访问:
docker exec -it mysql mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
安装redis:https://hub.docker.com/_/redis
docker pull redis:5.0.7
docker run --name redis --restart=always -p 6379:6379 -v /opt/docker-data/redis:/data -d redis:5.0.7 --requirepass "123456" --appendonly yes
安装elasticsearch:https://hub.docker.com/_/elasticsearch Install Elasticsearch with Docker | Elasticsearch Guide [6.8] | Elastic
docker pull elasticsearch:6.8.4
docker run -u 1000 --name es --restart=always -p 9200:9200 -p 9300:9300 -v /usr/local/docker-data/elasticsearch:/usr/share/elasticsearch/data -e discovery.type=single-node -d elasticsearch:6.8.4
安装Kibana:https://hub.docker.com/_/kibana
Install Kibana with Docker | Kibana Guide [7.15] | Elastic
docker pull kibana:6.8.4
docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.88.11:9200 --restart=always -p 5601:5601 -d kibana:6.8.4
安装rabbitmq:https://hub.docker.com/_/rabbitmq
docker pull rabbitmq:3.8-management
docker run -d --name rabbit -v /usr/local/docker-data/rabbitmq:/var/lib/rabbitmq --restart=always -p 5672:5672 -p 15672:15672 rabbitmq:3.8-management
下载延迟队列插件: https://www.rabbitmq.com/community-plugins.html
下载 rabbitmq_delayed_message_exchange-3.8.0.ez
#拷贝插件到容器
docker cp rabbitmq_delayed_message_exchange-3.8.0.ez 你的容器id:/plugins
进入容器,启用插件
docker exec -it 你的容器id /bin/bash
cd /plugins
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
重启下容器即可
docker restart 你的容器id
安装xxljob: https://hub.docker.com/r/xuxueli/xxl-job-admin
docker pull xuxueli/xxl-job-admin:2.2.0
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.232.176:3306/jkcloud_xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=abc@123" \
-p 7777:8080 -v /usr/local/docker-data/xxljob:/data/applogs \
--name xxl-job-admin --restart=always -d xuxueli/xxl-job-admin:2.2.0
安装minio:Docker Hub
docker run -p 9000:9000 -p 19000:19000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minioadmin" -e "MINIO_SECRET_KEY=minioadmin" -v /opt/docker-data/minio/data:/data -v /opt/docker-data/minio/config:/root/.minio minio/minio server /data --console-address ":19000"
安装nginx:
#docker pull nginx:1.26.1
#docker cp nginx:/usr/share/nginx/html ./html
#docker cp nginx:/etc/nginx/conf.d conf.d
#docker cp nginx:/etc/nginx/nginx.conf nginx.conf
docker pull m.daocloud.io/docker.io/nginx:1.26.1
docker run -p 8099:80 -d --restart=always --name nginx -v /opt/docker-data/nginx/conf.d:/etc/nginx/conf.d -v /opt/docker-data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker-data/nginx/html:/usr/share/nginx/html -v /opt/docker-data/cesium:/opt/docker-data/cesium m.daocloud.io/docker.io/nginx:1.26.1
封装python3镜像:
vi requirements.txt
需要的库,看自己需求
contourpy==1.2.0
cycler==0.12.1
et-xmlfile==1.1.0
fonttools==4.49.0
importlib_resources==6.1.2
kiwisolver==1.4.5
matplotlib==3.8.3
networkx==3.2.1
numpy==1.26.4
openpyxl==3.1.2
packaging==23.2
pandas==2.2.1
pillow==10.2.0
ply==3.11
pyparsing==3.1.2
python-dateutil==2.9.0.post0
pytz==2024.1
scipy==1.12.0
six==1.16.0
tzdata==2024.1
zipp==3.17.0
netCDF4==1.7.2
vi Dockerfile
# 使用官方的Python基础镜像,选择slim版本以减小镜像大小
FROM m.daocloud.io/docker.io/python:3.11-slim
# 设置工作目录
WORKDIR /app
# 将requirements.txt文件添加到Docker构建上下文中,并在这里复制它
# 假设requirements.txt文件与Dockerfile在同一目录下
COPY requirements.txt .
# 安装Python库时,使用--no-cache-dir选项来避免缓存,并使用--prefix选项来指定安装路径(可选,但通常不需要)
# 为了进一步减小镜像大小,我们可以考虑使用虚拟环境,但在这个例子中,我们将直接安装到系统Python中
RUN pip install --no-cache-dir -r requirements.txt && \
# 清理不再需要的.pyc文件和pip缓存(尽管--no-cache-dir已经避免了缓存,但清理.pyc是个好习惯)
find /usr/local/lib/python3.11 -name '*.pyc' -type f -exec rm -f {} + && \
rm -rf /root/.cache
# 如果您的应用有额外的源代码文件,请在这里将它们复制到镜像中
# 注意:仅复制必要的文件,而不是整个目录
# COPY your_source_files /app/
# 设置容器启动时默认执行的命令(可选)
# CMD ["python", "your_main_script.py"]
# 由于我们没有指定CMD,镜像将默认启动一个Python交互式解释器
# 您可以在运行docker run时指定要运行的命令,例如:docker run -it your_image_name python your_script.py
构建镜像
docker build -t python3 .
安装matlab:参考matlab官方docker
网页版:
docker run --name matlab --restart=always -p 8888:8888 --shm-size=512M -d registry.cn-hangzhou.aliyuncs.com/superman5789/matlab:r2022b -browser
shell版:
docker run --name matlab --restart=always --shm-size=512M -d registry.cn-hangzhou.aliyuncs.com/superman5789/matlab:r2022b -shell