使用Ubuntu进行Docker的学习
0、连接Ubuntu
为了方便命令的学习,使用xshell来远程连接虚拟机
1)安装openssh sudo apt install -y openssh-server 如果安装了先sudo apt purge -y openssh-server卸载
2)启动ssh服务 sudo systemctl start sshd
3)编辑ssh配置 sudo vim /etc/ssh/sshd_config,把PermitRootLogin改为yes,如下图
4)重启ssh sudo systemctl restart sshd
1、安装
官方文档:https://docs.docker.com/engine/install/ubuntu/
运行以下命令卸载所有冲突的软件包:
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
# 修改为阿里云gpg源
sudo 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.asc
# sources.list 中添加 Docker 软件源 改为阿里云的
echo \
"deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 下方是官方的
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; enable + start 二合一
systemctl enable docker --now
sudo systemctl daemon-reload
sudo systemctl restart docker
切换为root,好进行下方命令的学习
su root
# 输入密码后提示认证失败 可以重新修改密码
sudo passwd
2、命令
#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有镜像
docker images(image ls)
#删除指定id的镜像
docker rmi e784f4560448
#运行一个新容器
docker run nginx
#停止容器
docker stop keen_blackwell
#启动容器
docker start 592
#重启容器
docker restart 592
#查看容器资源占用情况
docker stats 592
#查看容器日志
docker logs 592
#删除指定容器
docker rm 592
#强制删除指定容器
docker rm -f 592
# 后台启动容器,给容器起个名字
docker run -d --name lznginx nginx
端口映射
每个容器都是一个独立小系统,想通过访问主系统的80端口,要进行容器的端口映射
docker run -d --name lzzz -p 80:80 nginx