文章目录
加速器
现在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"] # 变参
安装
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]
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映射网络,那么需要创建一张虚拟网卡,然后给这个网卡分配一个网段,但是未重启的时候,默认没看到这个网段(通过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端口映射无法访问的解决