Bootstrap

Dockers学习

使用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

;