【容器】优质文章分享

本文分享了Docker的相关知识,包括Docker教程、安装步骤、常见问题以及Dockerfile和docker-compose的使用。详细讨论了Docker的网络配置、镜像加速、VOLUME和容器间的连接。此外,还涵盖了各种服务的Docker使用,如mysql、mongo、redis、rabbitmq、nginx、tomcat、nacos、zookeeper和elasticsearch。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加速器

现在docker镜像站真的不好找了。阿里什么的加速目前只能给阿里自己的容器用了。且用且珍惜
DockerHub 国内加速镜像列表
sudo systemctl restart docker 重启一下

Docker

教程

引用华哥的一句话:Docker就是进程级别的虚拟机。确实
Docker 教程
对于Dockerfile中CMD指令的解释,相当于这个容器的主程序入口,就像主程序那样的,在容器启动之后会运行CMD指令。然后教程中提到了CMD指令有三种形式。
第一种是CMD <shell 命令> ,第二种是CMD ["<可执行文件或命令>","<param1>","<param2>",...] ,这两种功能查不太多,只不过就是第二种拆开了。
第三种:CMD ["<param1>","<param2>",...] 这种方式只有参数,没有指令,CMD只用于记录参数,而指令是用ENTRYPOINT来记录的。例如ENTRYPOINT ["nginx", "-c"] # 定参 CMD ["/etc/nginx/nginx.conf"] # 变参


Docker — 从入门到实践

安装

Docker CE镜像
ubuntu安装docker ce

ali的文章里的安装步骤和官网的一样,只不过链接给改成阿里的了

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# step 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Step 3: 写入软件源信息
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# Step 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

docker镜像加速器

Install Docker Desktop on Ubuntu
ubuntu的桌面客户端,runs in a vm,docker的使用有两种方式,一种是直接使用docker-ce运行docker 引擎,一种是使用desktop(底层是又新建了一个vm,所有容器运行在这个vm里)使用界面的模式。Docker Desktop for Linux stores containers and images in an isolated storage location within a VM and offers controls to restrict its resources.

ubuntu上desktop依赖这几个包:qemu-system-x86、docker-ce-cli、pass、uidmap,其中docker-ce-cli不在aliyun的apt-get镜像内,需要按照Docker-CE的安装流程配置镜像,然后apt-get install docker-ce-cli
折腾了半天,没安装成docker-desktop,还是老老实实用docker-ce了

添加当前用户到docker组,docker命令免sudo

安装完之后要重启一下,因为如果要用到docker映射网络,那么需要创建一张虚拟网卡,然后给这个网卡分配一个网段,但是未重启的时候,默认没看到这个网段(通过ip a/ifconfig来看网卡内容),我安装完docker之后没有重启,ifconfig命令没有发现docker0的网卡,并且ip a虽然返回了一个docker0,但是没有ip,如下所示

3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:d7:4f:d2:eb brd ff:ff:ff:ff:ff:ff

因此宿主机访问不了容器的端口与网络,但有趣的事,重启一下就好了= =
上述内容收到DOCKER默认虚拟网卡IP地址与局域网冲突解决的启发

v2023/2/27更新,怀疑是和vmware挂起虚拟机有关,挂起虚拟机重新恢复后就会找不到网卡,重启就好了。

记一次问题解决,异常:vmware的ubuntu虚拟机中用docker启动nginx,将容器80端口映射到host的8080端口,host机器访问localhost:8080一直转圈没有页面。
【docker】第三节:nginx通过外部无法访问的情况解决方法。
docker端口映射无法访问的解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值