Docker容器使用

Ubuntu安装Docker

APT安装依赖软件包

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

添加软件源的GPG密钥

# 阿里源
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加软件源

# 阿里源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.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=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

APT安装Docker

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

启动Docker

sudo systemctl enable docker
sudo systemctl start docker

创建Docker用户组

默认情况下,docker 命令会使用 Unix socket与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

sudo groupadd docker
sudo usermod -aG docker $USER

Docker常用命令

版本信息

显示 Docker 系统信息,包括镜像和容器数。

docker info

显示 Docker 版本信息。

docker version

启动容器

docker run --name myubuntu -it ubuntu /bin/bash

-it是使用交互方式来启动ubuntu镜像的容器,并运行/bin/bash,容器的名字是myubuntu

删除容器

docker rm -f myubuntu

强制删除myubuntu容器

进入已经启动的容器

docker exec -i -t  myubuntu /bin/bash

在容器myubuntu中开启一个交互模式的终端

exec和attach 都是进入当前已经运行容器的命令

  • exec,使用exec进入容器后,是开启一个新的终端。退出时,容器依然运行。

  • attach,使用attach是直接在当前容器正在执行的终端里进行操作,退出时容器可能会停止。

所以更建议使用exec来进入已经运行的容器。

查看容器日志

docker logs -f myubuntu

复制文件

从容器中复制文件到宿主机

docker cp myubuntu:/root/test.sh /home/i2som/test.sh

从宿主机复制文件到容器中

docker cp /home/i2som/test.sh myubuntu:/root/test.sh

镜像操作

列出本机的所有镜像

docker images

删除镜像

docker rmi ubuntu:latest

强制删除正在使用的镜像

docker rmi -f ubuntu:latest

 

容器备份

docker image save mysql:5.6 -o mysql:5.6.tar.gz

Docker容器导出

docker save mysql:5.6 > mysql:5.6.tar.gz

Docker容器恢复

docker image load < mysql:5.6.tar.gz 

Docker代理

/etc/docker/daemon.json配置文件

{
  "proxies" : {
    "http-proxy" : "http://127.0.0.1:7890",
    "no-proxy" : "localhost,127.0.0.0/8",
    "https-proxy" : "http://127.0.0.1:7890"
  }
}

使用systemd方式
新增 systemd 配置文件/etc/systemd/sysytem/docker.service.d/http_proxy.conf,加入以下内容

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=https://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

Docker学习资源

Docker — 从入门到实践

作者:SteveChen  创建时间:2024-10-10 10:52
最后编辑:SteveChen  更新时间:2025-05-05 01:39
上一篇:
下一篇: