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
