Home of the script that lives at get.docker.com and test.docker.com!
The purpose of the install script is for a convenience for quickly installing the latest Docker-CE releases on the supported linux distros. It is not recommended to depend on this script for deployment to production systems. For more thorough instructions for installing on the supported distros, see the install instructions.
This repository is solely maintained by Docker, Inc.
From https://get.docker.com:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
From https://test.docker.com:
curl -fsSL https://test.docker.com -o test-docker.sh
sh test-docker.sh
From the source repo (This will install latest from the stable channel):
sh install.sh
To verify that the install script works amongst the supported operating systems run:
make shellcheck
这里分享的官方脚本默认安装了docker compose,也就是说执行这条命令后docker和docker compose都安装了,简化了安装步骤,非root用户记得使用sudo。
curl -fsSL https://get.docker.com | bash -s docker
**curl -fsSL https://get.docker.com:从Docker的官方网站下载安装脚本。**
**| bash -s docker:将前面curl命令下载的内容传递给bash(Bourne Again SHell)执行,并且传递docker作为参数给脚本。**
完了启动docker,顺便的话可以看一下docker的版本信息和服务状态
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
注意看关键字段 Active: active (running),表示 Docker 服务正在运行。
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2024-06-01 12:34:56 UTC; 10min ago Docs: https://docs.docker.com Main PID: 12345 (dockerd) Tasks: 8 Memory: 32.0M CGroup: /system.slice/docker.service └─12345 /usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock
如果你是国内的机器,线路不怎么好的话可以指定国内镜像源加快docker下载速度,你可以使用–mirror参数来指定镜像源,这里脚本配置 Docker 使用 Aliyun 的镜像源,可以避免因网络问题导致的下载速度慢或失败。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果在中国或其他网络环境受限的地区,尝试使用国内的 Docker 镜像源来加速下载。例如,使用阿里云的 Docker 镜像源:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://y1ncttng.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
为了加快镜像的下载速度,我们可以将 Docker Hub 的镜像源修改为国内的镜像源。终端编辑此文件: sudo vim /etc/docker/daemon.json
添加以下内容,然后保存退出!
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://dockerproxy.com",
"https://dockerproxy.cn",
"https://docker.1panel.live",
"https://docker.hpcloud.cloud",
"https://dockerpull.com",
"https://docker.1ms.run",
"https://y1ncttng.mirror.aliyuncs.com",
"https://ypzju6vq.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
重启服务
systemctl daemon-reload
systemctl restart docker
运行以下命令以验证Docker是否正确安装
sudo docker run hello-world
该命令将下载一个测试镜像并在容器中运行。当容器运行时,它会打印出一条信息,说明Docker安装成功。
wsl2安装docker
接下来添加Docker源: 依次执行如下命令:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt update
配置完成软件源之后下一步是安装Docker,命令如下:
sudo apt install -y docker-ce
要打开防火墙,请在终端输入 sudo ufw enable。要关闭 ufw,请输入 sudo ufw disable。 允许或阻止特定网络活动
很多程序专用于提供网络服务。例如,您可共享内容或允许其他人远程查看您的桌面。根据您安装的附加程序,您可能需要调整防火墙设置,以允许这些服务正常运行。UfW 附带了很多已预配置好的规则。例如,要允许 SSH 连接,请在终端输入 sudo ufw allow ssh。要阻止 ssh,请输入 sudo ufw block ssh。
提供服务的每个程序都使用特定的网络端口。要允许访问该程序的服务,您可能需要允许访问在防火墙上为其分配的端口。要允许连接端口 53,请在终端输入sudo ufw allow 53。要阻止端口 53,请输入 sudo ufw block 53。
要检查 ufw 的当前状态,请在终端输入 sudo ufw status。
启动docker2种方法
1.sudo service docker start
sudo service docker stop
sudo service docker status
2.systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
查看docker信息
docker version
查看docker镜像
docker images
查看docker运行的容器(-a是指运行的所有容器)
docker ps -a
拉取nginx镜像 镜像后面不指定版本默认为latest
docker pull nginx
保存nginx镜像 [镜像名]:[版本]
docker save -o nginx.tar nginx:latest
删除nginx镜像 [镜像名]:[版本]
docker rmi -f nginx:latest
恢复nginx镜像 [镜像名]:[版本]
docker load -i nginx:latest
如果没有拉取MySQL镜像 会执行拉取MySQL镜像然后创建一个mysql2(容器名)的容器
docker run -d \ #创建并运行一个容器,-d是让容器在后台运行
--name mysql \ #给容器起个名字,必须唯一
-p 3306:3306 \ #设置端口映射 [宿主机]:[容器内部] 宿主机端口映射到容器内端口
-e TZ=Asia/Shanghai \ #KEY=VALUE 设置环境变量
-e MYSQL_ROOT_PASSWORD=123 \
mysql:latest #指定运行镜像名字 [镜像名]:[版本] 默认latest可以省略,指定版本必须写
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
docker run --name nginx -d -p 80:80 nginx:latest
停止容器
docker stop mysql2
启动容器
docker start mysql
删除容器
docker rm -f mysql
查看nginx容器运行日志
docker logs -f nginx
进入nginx容器内部
docker exec -it nginx bash
进入MySQL并且连接
docker exec -it mysql mysql -uroot -p
查看nginx容器内的ip
docker inspect nginx | grep IPAddress
配置命令的别名
vim ~/.bashrc
让 ./bashrc 生效
source ~./bashrc
今天在这里讲如何在docker上运行nignx镜像,并将配置文件和目录挂载到宿主机上,以实现方便统一的管理配置信息。
mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/logs
mkdir -p /usr/local/nginx/html
下面需要先运行容器,方便把文件本来的内容拷贝出来,然后再将容器删除,因为自己手动创建的配置文件容易有语法错误,当然如果你有了争取的配置文件也可以直接使用,就不需要创建容器拷贝出来后再删除这个操作了。接下来几个步骤可以跳过
docker run --name nginx -d -p 80:80 nginx
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
docker rm -f nginx
最终可以在宿主机中看到这些目录和文件夹,并且其中的html中包含了html文件,conf文件夹中包含了配置文件。
全部准备好后,做最终的文件夹挂载,端口映射
docker run -p 80:80 --name nginx -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx -v /usr/local/nginx/html:/usr/share/nginx/html -d --restart=always nginx:latest
docker run -p 80:80 --name nginx \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-d \
--restart=always \
nginx:latest
1.–name是设置容器名 2.-p是容器与宿主机的端口映射 3.-v是做卷挂载,实质上就是文件的映射 4.-d是后台运行 5.–restart 是Docker提供重启策略控制容器退出时或Docker重启时是否自动启动该容器。,always表示docker重启后,这个容器会自动重启
执行完成后,在浏览器查看是否可以访问。
以上就是docker运行nginx的所有步骤了,如果要配置ssl的话,需要先去域名申请证书,再配置到配置文件中,docker的操作步骤不影响。不过以上要注意几个问题
容器的端口要映射出来才可以访问,如果是在阿里云服务器上,还需要把阿里云的对应的端口开通
如果部署的是前端系统,需要把前端文件放到挂载的文件夹中,且nginx配置的访问路径是容器中对应的路径,不要配置成宿主机中的路径,否则会访问不到的
sudo apt-get update
apt list --upgradable
sudo apt-get upgrade
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
echo "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker-compose up --build --no-cache
这将确保所有步骤从头开始重新构建,不会使用任何之前的缓存。
docker builder prune
该命令会删除所有未使用的构建缓存。你会被提示确认是否继续清理,输入 y 确认。如果你想自动跳过确认提示,可以加上 -f 选项:
docker builder prune -f
列出所有镜像 :
docker images
删除某个镜像 (用
docker rmi <image_id>
删除所有未使用的镜像和容器 :
docker system prune -a
这个命令不仅会删除未使用的镜像,还会删除停止的容器、未使用的网络等。
使用 –no-cache 选项强制重新构建:
docker-compose up --build --no-cache
使用 docker builder prune 清理构建缓存:
docker builder prune -f
使用 docker system prune -a 清理未使用的镜像和容器。
首次启动 或需要重新构建时,使用 docker-compose up –build。
docker-compose up --build
正常启动 :不需要重新构建时,只需运行以下命令:
docker-compose up
这将启动所有服务。加上 -d 选项可以在后台运行(即不显示日志)。
docker-compose up -d
关闭服务 你可以使用 docker-compose down 来停止并关闭所有容器:
docker-compose down
该命令会停止运行的容器,并清除与它们关联的网络。容器、网络、卷都会被移除。
停止服务 如果只想 停止服务 而不移除容器、网络等,可以使用:
docker-compose stop
这会停止所有正在运行的容器,但保留容器和网络的状态,以便以后可以快速重新启动。
重新启动服务 如果需要重新启动服务,可以运行以下命令:
docker-compose restart
如果需要仅重启某个服务,指定服务名称即可:
docker-compose restart <service_name>
启动服务 :
前台运行并构建: docker-compose up --build
后台运行: docker-compose up -d
关闭服务 :
完全关闭并清理: docker-compose down
停止但不清理容器: docker-compose stop
重新启动 :
重启所有服务: docker-compose restart
重启特定服务: docker-compose restart <service_name>
通过这些命令,你可以灵活管理容器的启动、停止和重启。