docker的基本使用方法(ubantu)

目录

前言:

一、docker的安装

二、添加docker hub镜像仓库

三、docker常用命令

四、本地目录挂载

五、docker网络连接

六、网络连接常用指令

前言:

在做美团的低空经济挑战赛,和在做robocup的时候,由于是线上仿真的形式,所以都用到了docker,包括docker镜像,容器,上传,网络等,但是一直不是特别理解,在过程中会出现很多问题,所以昨天学习了一下黑马的docker讲解,这里记录一下。

参考链接:02.Docker的安装_哔哩哔哩_bilibili

Docker 常用命令大全!!_docker常用命令-优快云博客

docker常用命令汇总-优快云博客

一、docker的安装

# 安装相关依赖
sudo apt-get install ca-certificates gnupg lsb-release
# 创建一个位置放docker仓库密钥
sudo mkdir -p /etc/apt/keyrings
# 添加docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加docker官方仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新apt镜像
sudo apt-get update
# 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

docker安装完毕后,使用docker --version ,如果有下面显示,那么就安装成功了。

二、添加docker hub镜像仓库

当使用docker下载一些东西的时候,由于docker hub的服务器在国外,所以就会非常慢,所以需要给这个dockerhub添加国内的镜像仓库。

# 如果没有/etc/docker/daemon.json就创建一个,有就算了
sudo mkdir -p /etc/docker
cd /etc/docker
touch daemon.json
# 之后将下面的内容黏贴到touch daemon.json里面
{
"registry-mirrors":[ "https://docker.1ms.run", "https://doublezonline.cloud", "https://dislabaiot.xyz", "https://docker.fxxk.dedyn.io", "https://dockerpull.org", "https://docker.unsee.tech", "https://hub.rat.dev", "https://docker.1panel.live", "https://docker.nastool.de", "https://docker.zhai.cm", "https://docker.5z5f.com", "https://a.ussh.net", "https://docker.udayun.com", "https://hub.geekery.cn"]
}
# 重新启动docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

vim删除文件里面所有内容:

在命令模式下,输入:%d。%表示文件所有内容,d表示删除。之后回车就完了。

三、docker常用命令

更多参考:

docker常用命令汇总-优快云博客

Docker 常用命令大全!!_docker常用命令-优快云博客

四、本地目录挂载

所谓本地目录挂载,就是将本地的一个目录和docker容器里面的一个目录建立一个双向的关系,无论是从docker容器,还是从宿主机改变这个目录里面的内容,都会成效。这个只有在创建docker镜像的时候才可以指定。

docker run -it -d --name my_container -p 8080:80 -v /home/user/app:/app nginx:latest /bin/bash
####1
-d(--detach)
让容器在后台运行(以守护进程模式运行),而不是直接在当前终端中运行。这样你可以继续在当前终端执行其他命令,而容器会在后台持续运行。
#####2
-it
    -i(--interactive):保持标准输入(STDIN)打开,即使没有连接到终端,允许你与容器进行交互。
    -t(--tty):为容器分配一个伪终端(pseudo-TTY),模拟一个真实的终端环境,方便你在容器内进行命令行操作。
#####3
--name 要取的别名
为新创建的容器指定一个自定义的名称。这个别名可以方便你后续对容器进行管理,例如使用 docker start、docker stop、docker logs 等命令时,使用别名比使用容器的长 ID 更方便记忆和操作。
#####4
-p 宿主机端口:容器端口
进行端口映射,将宿主机上的一个端口映射到容器内的一个端口。这样,外部网络可以通过访问宿主机的指定端口来访问容器内运行的服务。例如,-p 8080:80 表示将宿主机的 8080 端口映射到容器的 80 端口。
######5
-v 宿主机文件存储位置:容器内文件位置
进行文件挂载,将宿主机上的一个目录或文件挂载到容器内的指定位置。这样,容器内对挂载位置的文件操作实际上是对宿主机上对应文件的操作,方便数据的共享和持久化。例如,-v /home/user/data:/app/data 表示将宿主机的 /home/user/data 目录挂载到容器内的 /app/data 目录。
#####6
镜像名:Tag
指定要使用的 Docker 镜像及其版本标签。镜像名是 Docker 镜像的名称,Tag 是镜像的版本标识,用于区分同一镜像的不同版本。如果不指定 Tag,默认使用 latest 标签。例如,nginx:1.21.1 表示使用版本为 1.21.1 的 Nginx 镜像
#######7
/bin/bash
在容器启动后,在容器内执行 /bin/bash 命令,启动一个交互式的 Bash shell,让你可以在容器内执行各种命令

五、docker网络连接

docker一旦安装到电脑上,他就会自然产生一个网桥,使用ifconfig可以看到,名称为docker0。

这些容器,自己启动不指定网桥的话,就会自动连接到这个网桥。在同一个网桥上连接的容器之间可以ping通,ip地址是自动分配的。这样就会存在一个问题,当一个容器关闭后再打开之后,它的ip地址就会发生改变,所以这样容器之间的通讯就会有麻烦。为了解决这个问题,需要自定义网桥,自定义网桥里面的容器可以通过容器名相互访问,那样ip地址变了也无所谓了

六、网络连接常用指令

在同一个自定义网桥下的容器,可以直接通过ping 容器名来ping通。

# 创建网桥
docker network create 网桥名称
# 查看网桥
docker network ls
# 加入容器
docker network connect 网络名 容器名
# 将容器移除网桥
docker network disconnect 网络名 容器名
# 查看容器信息
docker inspect 容器名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值