目录
一、Linux系统上 Docker安装流程(以ubuntu为例)
一、卸载所有冲突的软件包
二、设置Docker的apt存储库(这里使用的是阿里云软件源)
三、直接安装最新版本的Docker
三、安装指定版本的Docker
四、验证Docker是否安装成功
二、Docker命令解释
三、Docker常用命令
一、启动docker
二、关闭docker
三、重启docker
四、跟随系统自动启动
五、查询docker运行状态
六、下载镜像命令(下载,但是不运行)
七、创建镜像容器并运行(后面可以携带常用参数如 -d -p)
八、进入镜像容器内部
九、退出容器内部(运行时候未加-d容器会被关闭)
十、启动容器
十一、停止容器
十二、重启容器
十三、查看宿主机内全部镜像
十四、删除镜像(被删除的镜像不能在任何容器内运行)
十五、强制删除镜像
十六、保存镜像
十七、从压缩包中加载镜像
十八、查看正在运行的容器
十九、查看所有的容器
四、数据卷挂载和本地挂载
一、数据卷挂载(必须在创建容器的时候进行挂载)
二、本地挂载(必须在创建容器的时候进行挂载)
五、构建java项目镜像
六、docker自定义网络
1、创建自定义网络
2、将容器加入该网络
作者介绍
尾言
一、Linux系统上 Docker安装流程(以ubuntu为例)
其它操作系统,请前往docker官网查看
Install Docker Engine on Ubuntu | Docker Docs
一、卸载所有冲突的软件包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
二、设置Docker的apt存储库(这里使用的是阿里云软件源)
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 设置为阿里云的软件源
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
三、直接安装最新版本的Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、安装指定版本的Docker
1、先查询可用版本
apt-cache madison docker-ce | awk '{ print $3 }'
2、选择指定的Docker版本进行安装
VERSION_STRING=5:26.1.0-1~ubuntu.24.04~noble sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
四、验证Docker是否安装成功
sudo docker run hello-world
二、Docker命令解释
docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
docker run
这行命令的意思是创建并运行一个容器
-d
这个参数的意思是,让容器在后台运行
-p [宿主机端口]:[容器内要需要被映射的端口]
所以-p 3307:3306的意思就是将宿主机的3307端口映射到mysql容器内的3306端口,这样就可以通过从外部访问宿主机的3307端口从而间接访问容器内的3306端口
-e 这个是配置环境变量参数,具体要配置什么,得看该容器在Docker hub中的具体说明
mysql:8.0
mysql是镜像名,就是你要从仓库下载的镜像,8.0是该镜像的版本。如果省略:8.0则默认安装最新版本
三、Docker常用命令
一、启动docker
systemctl start docker
二、关闭docker
systemctl stop docker
三、重启docker
systemctl restart docker
四、跟随系统自动启动
systemctl enable docker
五、查询docker运行状态
systemctl status docker
六、下载镜像命令(下载,但是不运行)
docker pull 镜像名:版本号
七、创建镜像容器并运行(后面可以携带常用参数如 -d -p)
docker run 镜像名
八、进入镜像容器内部
docker exec -it 镜像容器名 bash
九、退出容器内部(运行时候未加-d容器会被关闭)
exit
十、启动容器
docker start 容器名
十一、停止容器
docker stop 容器名
十二、重启容器
docker restart 容器名
十三、查看宿主机内全部镜像
docker images
十四、删除镜像(被删除的镜像不能在任何容器内运行)
docker rmi -f 镜像名
十五、强制删除镜像
docker image rm 镜像名
十六、保存镜像
docker save 镜像名 -o 保存路径
#例如 docker save mysql -o /root/mysql.tar
十七、从压缩包中加载镜像
docker load -i 镜像压缩包路径
十八、查看正在运行的容器
docker ps
十九、查看所有的容器
docker ps -a
四、数据卷挂载和本地挂载
一、数据卷挂载(必须在创建容器的时候进行挂载)
docker run -v 数据卷名字:容器内要被挂载的目录 # 例如 docker run -v conf:/usr/share/nginx/html
然后容器内的html目录就会被挂载在宿主机的/var/lib/docker/volumes/conf/_data
二、本地挂载(必须在创建容器的时候进行挂载)
docker run -v 本地绝对路径目录:容器内需要被挂载的路径 # 必须是绝对路径不能是相对路径,否则会认为是数据卷挂载
五、构建java项目镜像
1、新建一个名字未dockerfile的文件,没有文件格式后缀
2、编写dockerfile文件里的配置
FROM openjdk:11.0-jre-buster #JDK基础镜像需要提前下载 COPY java-demo.jar /app.jar #只用将java-demo.jar这个jar包的路径改为你自己的 ENTRYPOINT["java","-jar","/app.jar"] #入口
3、执行构建指令
docker build -t 你起的镜像名:版本号 dockerfile文件所在目录
六、docker自定义网络
1、创建自定义网络
cocker network create 自定义网络名
2、将容器加入该网络
docker network connect 自定义网络名 容器名
然后就可以通过自定义网络名去替代容器的IP地址,并且在同一个网络的容器们都可以互相访问。
作者介绍
作者本人是一名人工智能炼丹师,目前在实验室主要研究的方向为生成式模型,对其它方向也略有了解,希望能够在CSDN这个平台上与同样爱好人工智能的小伙伴交流分享,一起进步。谢谢大家鸭~~~
如果你觉得这篇文章对您有帮助,麻烦点赞、收藏或者评论一下,这是对作者工作的肯定和鼓励。
尾言
如果您觉得这篇文章对您有帮忙,请点赞、收藏。您的点赞是对作者工作的肯定和鼓励,这对作者来说真的非常重要。如果您对文章内容有任何疑惑和建议,欢迎在评论区里面进行评论,我将第一时间进行回复。