Docker安装与部分应用安装

Docker 安装

docker 只有运行在 Linux 中。

windows 环境

直接 安装 虚拟机 或者 wsl2 安装 Linux 发行版。然后安装 Docker

Mac 环境

macos上没有wsl那种Linux 只有安装docker desktop。实际上docker desktop 在内部运行了一个Linux 虚拟机,docker 就在这虚拟机上运行

ubuntu 环境

安装前置工具

一般来说是默认安装了的,执行

arduino 复制代码
sudo apt-get install ca-certificates curl gnupg lsb-release

安装docker官方的GPG key

这里的操作 实际上就是下载一个文件 去加入apt,正常来说是下载 官方 的,但是由于国外的docker官方不好访问 这里我直接使用的网易的镜像去拉取得gpg 当然其他的也可以。

先 新建文件夹存放gpg(注意加载那个命令也为这个地址)

bash 复制代码
sudo mkdir -p /etc/apt/keyrings

然后下载并加载。(如果不用这个镜像就直接换链接)

bash 复制代码
curl -fsSL https://mirrors.163.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

将Docker的库添加到apt资源列表

这里为添加库,以后就是那种 apt 的更新那些都会更新。

docker 无法直接访问了,需要换源。我这里选择的是阿里镜像。

bash 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新apt

sql 复制代码
sudo apt update

安装docker ce版本

复制代码
sudo apt install docker-ce

安装测试

css 复制代码
sudo docker --version

加速加速源(可选)

加速源的操作是建立在 docker 已经安装好之后。前面更换镜像是为了下载 docker ,待 docker 安装完了之后,可以设置加速源去加速内部镜像下载那些。

加速就是在daemon.json填写地址。

阿里有一个免费的加速源 每个人都不一样 得到那个链接如 xxxx.mirror.aliyuncs.com

创建文件夹

bash 复制代码
sudo mkdir -p /etc/docker

设置加速器地址【加速地址换成自己的】

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [" https://xxxx.mirror.aliyuncs.com"]
}
EOF

重新加载配置

复制代码
sudo systemctl daemon-reload

重启docker

复制代码
sudo systemctl restart docker

镜像源列举(镜像源需要自己去寻找。由于一些原因导致现在很多镜像源不可用)

json 复制代码
{
  "registry-mirrors": [
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.m.daocloud.io",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud",
    "https://noohub.ru"
  ]
}

额外

有些用户可能出现每次都要使用 sudo 的情况,

解决每次都sudo的问题

sql 复制代码
sudo groupadd docker    会回显group 'docker' already exists
sudo gpasswd -a <你的用户名> docker     例如: sudo gpasswd -a xxxx docker
sudo service docker restart  重启docker

Docker 清除缓存与卸载

强制删除docker缓存,释放磁盘空间

css 复制代码
docker system prune -a --force

Docker 应用安装

映射端口与密码因人而定

MySQL

用户名 root 密码 123456

ini 复制代码
docker pull mysql:8.0.32
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.32

Redis

密码 123456

arduino 复制代码
docker pull redis
docker run -p 6379:6379 --name redis -d redis --requirepass 123456

Nacos

用户名:nacos 密码:nacos

diff 复制代码
sudo docker pull nacos/nacos-server

sudo docker run \
-p 8848:8848 \
--env MODE=standalone \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
--name nacos \
-d nacos/nacos-server

Minio

--console-address ":9001" 是监听容器内的方法 所以是 9001 端口

9001是浏览器访问 9000是api操作

bash 复制代码
docker pull minio/minio

docker run -d -p 9000:9000 -p 9001:9001 \
  --name dminio \
  -e "MINIO_ROOT_USER=minioAdminDy" \
  -e "MINIO_ROOT_PASSWORD=minioAdminDy" \
  -v /home/dockerconf/minio/data:/data \
  -v /home/dockerconf/minio/config:/root/.minio \
  minio/minio server /data \
  --console-address ":9001"

RabbitMQ

有点麻烦 这个不仅要启动容器还要启动插件 (顺序是先是启动容器 再进入容器启动插件 )

ini 复制代码
docker pull rabbitmq
运行容器还要启动插件      
docker run -d --hostname my-rabbit --name drabbit -p 15672:15672 -p 5673:5672 rabbitmq

这是启动并启动插件
docker run -d --name drabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management


我的启动命令是
docker run -d --name drabbit -e RABBITMQ_DEFAULT_USER=rabbitdy -e RABBITMQ_DEFAULT_PASS=rabbitdy -p 15672:15672 -p 5672:5672  rabbitmq:management

根据我的需求来 来开辟端口 现在我只使用 5672与15672

Nginx

nginx 需要挂载 不然部署网站会很麻烦。

要挂载 3 个文件夹 conf log html 我们事先不知道那三个内部是什么,所以就需要先创建并启动一个容器 复制这 3 个出来 然后再删掉临时容器。再创建自己想要的容器。

拉取镜像

复制代码
docker pull nginx

创建挂载目录

这个文件夹位置自拟

arduino 复制代码
mkdir -p /home/dockerconf/nginx/conf
mkdir -p /home/dockerconf/nginx/log
mkdir -p /home/dockerconf/nginx/html

复制文件

生成临时容器 复制那 3 个目录到创建的目录中

bash 复制代码
# 生成容器
docker run --name nginx -p 80:80 -d nginx

# 复制
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/dockerconf/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/dockerconf/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/dockerconf/nginx/


# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx

创建容器

bash 复制代码
docker run \
-p 80:80 \
--name dnginx \
-v /home/dockerconf/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/dockerconf/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/dockerconf/nginx/log:/var/log/nginx \
-v /home/dockerconf/nginx/html:/usr/share/nginx/html \
-d nginx:latest

或者

docker run -p 80:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest
相关推荐
streaker3035 小时前
Docker + Jenkins + Nginx 实现前端自动化构建与静态资源发布(含一键初始化脚本)
docker·jenkins
THMAIL6 小时前
机器学习从入门到精通 - Python环境搭建与Jupyter魔法:机器学习起航必备
linux·人工智能·python·算法·机器学习·docker·逻辑回归
13线8 小时前
Windows+Docker一键部署CozeStudio私有化,保姆级
docker·容器·开源
0wioiw09 小时前
Docker(②创造nginx容器)
docker·容器
菜鸟IT胡9 小时前
docker更新jar包,懒人执行脚本
运维·docker·容器
天道有情战天下9 小时前
ClickHouse使用Docker部署
clickhouse·docker·容器
小池先生10 小时前
docker中的mysql变更宿主机映射端口
android·mysql·docker
THMAIL11 小时前
机器学习从入门到精通 - 模型部署落地:Docker+Flask构建API服务全流程
人工智能·python·算法·机器学习·docker·flask·逻辑回归
程序员七平11 小时前
Linux安装Dify(Docker|附离线镜像资源)
人工智能·docker·开源