Ubantu安装Docker详细教程

一、卸载旧Docker相关

#删除Docker相关源
sudo rm -f /etc/apt/sources.list.d/*docker*.list

#卸载Docker和相关的软件包
for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done

二、安装Docker

#更新包管理工具
sudo apt-get update

#添加Docker软件包源
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#安装Docker社区版本
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#验证Docker是否安装成功
sudo docker -v

#启动Docker
sudo systemctl start docker

#开机自启
sudo systemctl enable docker

#查看Docker状态
sudo systemctl --no-pager status --full docker

三、配置Docker

1.创建镜像目录

sudo mkdir -p /docker

2.镜像加速器

阿里云镜像加速器
在这里插入图片描述

3.配置

sudo vi /etc/docker/daemon.json

内容如下

{
   
   
	"registry-mirrors": [
		"阿里云镜像加速器地址"
	],
	"data-root": "/docker"
}

其他的镜像加速器:
“http://hub-mirror.c.163.com”,“https://registry.docker-cn.com”

重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

四、常用命令

1.镜像相关命令

查看镜像

sudo docker images

REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像 ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小

搜素镜像

sudo docker search 镜像名称

sudo docker search 镜像名称:标签

#或者从私有仓库搜索
sudo docker search 私有仓库地址/镜像名[:标签]

NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方

拉取镜像

sudo docker pull 镜像名称
#默认拉取:latest标签的镜像

#拉取指定标签的镜像
sudo docker pull 镜像名称:标签

#从私有仓库拉取
sudo docker pull 私有仓库地址/镜像名[:标签]

删除镜像

sudo docker rmi 镜像ID

sudo docker rmi 镜像名称

更改镜像名

sudo docker tag 原镜像名:标签 新镜像名:标签 && docker rmi 原镜像名:标签

2.容器相关命令

查看容器

#查看正在运行的容器
sudo docker ps

#查看所有容器
sudo docker ps -a

#查看最后一次运行的容器
sudo docker ps -l

创建容器

创建容器命令:docker run

参数 说明
-it 用于进入容器的交互式 shell。
i:交互模式,表示运行容器。
t:表示容器启动后会进入其命令行,分配伪终端。
加入这两个参数后,容器创建就能登录进去。
-id d:守护式容器,后台运行,创建容器后不会自动登录容器。
-it 和 -id只能二选一。
–restart 重启策略
–restart=always:无论退出状态如何,Docker 都会自动重启容器。
–restart=unless-stopped:除非手动停止,否则 Docker 会自动重启容器(推荐生产环境)。
–restart=on-failure:仅在容器以非零状态码退出时重启。
–name 为容器指定自定义名称。
-p 端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。
注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-e 环境变量:MY_ENV=value,例如NODE_ENV=development

(1)交互式方式创建容器:交互式容器创建好后会进入容器

sudo docker run -it --name=容器名称 镜像名称:标签 bash

#退出容器
exit

(2)守护式方式创建容器

sudo docker run -id --name=容器名称 镜像名称:标签

(3)登录守护式容器方式

sudo docker exec -it 容器名称 (或者容器 ID) bash

停止与启动容器

#停止容器
sudo docker stop 容器名称(或者容器 ID)

#启动容器
sudo docker start 容器名称(或者容器 ID)

删除容器

#先停止容器
sudo docker rm -f 容器名(容器ID)

文件拷贝

#将文件拷贝到容器内
sudo docker cp 需要拷贝的文件 容器名称:容器目录/文件名

#将文件从容器内拷贝出来
sudo docker cp 容器名称:容器目录/文件名 拷贝到目录/文件名

目录、文件挂载

在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主
机某个目录的文件从而去影响容器
注意:目录挂载必须在创建容器的时候就挂载,不能后面追加挂载

sudo docker run -id -v 宿主机目录:容器目录 --name=容器名称 镜像名称:镜像标签名

五、安装软件(可选)

私有镜像仓库地址:
毫秒镜像:docker.1ms.run
轩辕镜像:docker.xuanyuan.me

创建docker-compose.yml文件

sudo vi /usr/local/docker-compose.yml

添加以下内容

services:

1.JDK

sudo vi /usr/local/docker-compose.yml

services添加以下内容

  jdk:
    # 镜像
    image: docker.xuanyuan.me/library/openjdk:17
    # 容器名
    container_name: jdk
    # 保持容器运行
    command: tail -f /dev/null
    # 重启策略
    restart: always

在这里插入图片描述
后台启动运行容器

sudo docker compose -f /usr/local/docker-compose.yml up -d

在这里插入图片描述

2.MySQL/Oracle

获取Token

要先去官网注册,注册完成登录之后右上角Auth Token
在这里插入图片描述
生成,这个要保存好等下需要用到
在这里插入图片描述

2.1 MySQL

2.1.1 授权

在这里插入图片描述
选择enterprise-server
在这里插入图片描述
授权
在这里插入图片描述
接受
在这里插入图片描述
完成授权
在这里插入图片描述

2.1.2 镜像选择

查看架构

uname -m

x86_64 是 amd64。
aarch64 是 arm64。
滑动页面到底部,选择对应的版本架构与之对应的拉取命令。
在这里插入图片描述

2.1.3 登录
#登录官网 输入账号,刚才生成token
sudo docker login container-registry.oracle.com

在这里插入图片描述

2.1.4 创建容器运行
#开放端口
sudo ufw allow 3306/tcp
sudo ufw reload

sudo vi /usr/local/docker-compose.yml

services添加以下内容

  mysql:
    # 镜像
    image: container-registry.oracle.com/mysql/enterprise-server:8.0.42
    # 容器名
    container_name: mysql
    # 端口映射
    ports:
      - "3306:3306"
    # 环境配置
    environment:
      # root用户密码
      MYSQL_ROOT_PASSWORD: ${
   
   MYSQL_ROOT_PASSWORD:-123456}
      # 字符集设置
      MYSQL_CHARSET: utf8mb4
      MYSQL_COLLATION: utf8mb4_unicode_ci
    # 挂载
    volumes:
      # 数据目录
      - ./mysql/data:/var/lib/mysql
      # 配置目录
      - ./mysql/conf:/etc/mysql/conf.d
      # 日志目录
      - ./mysql/logs:/var/log/mysql
    # 健康检查
    healthcheck:
      # 检查命令
      test: ["CMD", "mysqladmin", "-p${MYSQL_ROOT_PASSWORD:-123456}", "ping", "-h", "localhost"]
      # 检查间隔(默认30s)
      interval: 10s
      # 超时时间
      timeout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linrp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值