docker

安装 docker

docker 要求 CentOS系统内核版本高于 3.10,查看页面的前提条件来验证你的 CentOS 版本是否支持 docker

uname -r

使用 root 权限登录 CentOS,确保 yum 包更新到最新。

sudo yum update

卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker  docker-common docker-selinux docker-engine

安装所需的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置 yum

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有 docker 版本,并选择特定版本安装。

yum list docker-ce --showduplicates | sort -r

安装 docker

sudo yum install docker-ce  # 由于repo中默认只开启stable仓库,故这里安装的是最新稳定版 20.10.21
sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-20.10.21.ce

启动并加入开机启动

sudo systemctl start docker # 启动 docker 服务
sudo systemctl enable docker # 设置开机自启动
systemctl list-unit-files | grep enable | grep docker # 查看是否设置成功

验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

Transaction check error:
  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

2、卸载旧版本的包

sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安装 docker

sudo yum install docker-ce

docker 基本命令使用

  • 显示所有正在运行的容器,一个容器只管理一个服务,即使容器挂掉也不会影响其他容器的服务,做到业务之间不影响。

    docker ps
    
  • 开始一个容器服务

    docker start [id/id开头]
    
  • 停止一个容器。

    docker stop [id/id开头]
    
  • 显示所有的容器

    docker ps -a
    
  • 删除一个容器

    docker rm [id/id开头]
    

  • 显示所有的容器镜像

    docker images
    

  • 删除一个容器镜像

    docker rmi [IMAGE ID/IMAGE ID开头]
    
  • 设置镜像自动启动

    docker start [id/id开头] # 先启动,再设置自动启动
    docker update --restart=always [id/id开头] # 设置自动启动
    

docker 中部署 MySQL 服务。

1、获取MySQL镜像

docker pull mysql

2、启动MySQL镜像

docker run --name=mysql -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

docker run是启动容器的命令;

--name:指定了容器的名称,方便之后进入容器的命令行

-itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行

-p:指在本地生成一个随机端口,用来映射mysql的3306端口

-e:设置环境变量

MYSQL_ROOT_PASSWORD=123456:指定了mysql的root密码

mysql:指运行mysql镜像

3、进入 MySQL 容器

通过docker exec命令进入MySQL容器

docker exec -it mysql /bin/bash

docker exec -it c9 /bin/bash

其中的 c9 指的当前mysql容器ID的开头部分。

4、使用工具连接

需要留意防火墙端口是否开启。

firewall-cmd --zone=public --add-port=3306/tcp --permanent

参考Centos7上安装docker - 风止雨歇 - 博客园 (cnblogs.com)

docker 停止服务 部署服务 - 握瑾怀瑜 - 博客园 (cnblogs.com)
docker服务及镜像开机自动启动_guotianqing的博客-CSDN博客_docker镜像开机启动

docker中创建MySQL及在外部使用Navicat连接 - 山人是我师 - 博客园 (cnblogs.com)

posted @ 2022-12-13 13:26  村上春树的叶子  阅读(22)  评论(0编辑  收藏  举报