Docker
Docker
安装docker
在 CentOS 操作系统上安装 Docker 可以通过官方的 Docker 社区版(Docker CE)来实现。以下是在 CentOS 7 和 CentOS 8 上安装 Docker 的步骤:
在 CentOS 7 上安装 Docker:
-
卸载旧版本的 Docker(如果已经安装):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -
安装所需的依赖包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -
添加 Docker 的官方存储库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
安装 Docker:
sudo yum install docker-ce -
启动 Docker 服务并设置开机启动:
sudo systemctl start docker sudo systemctl enable docker -
验证 Docker 是否安装成功:
sudo docker --version
在 CentOS 8 上安装 Docker:
-
安装所需的依赖包:
sudo dnf install -y dnf-plugins-core -
添加 Docker 的官方存储库:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
安装 Docker:
sudo dnf install docker-ce -
启动 Docker 服务并设置开机启动:
sudo systemctl start docker sudo systemctl enable docker -
验证 Docker 是否安装成功:
sudo docker --version
以上步骤将安装 Docker 社区版(Docker CE)。安装完成后,你可以使用 Docker 命令来管理容器。请注意,安装 Docker 通常需要超级用户权限,所以确保你以管理员身份运行这些命令。
配置国内镜像加速
配置流程
编辑/etc/docker/daemon.json
vim /etc/docker/daemon.json
添加镜像代码(Docker中国官方镜像加速)
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
其他更多镜像地址
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://registry.docker-cn.com", "https://reg-mirror.qiniu.com", "https://dockerhub.azk8s.cn", "https://docker.mirrors.ustc.edu.cn" ] }
重新加载daemon.json
sudo systemctl daemon-reload
重启Docker
sudo systemctl restart docker
使用docker安装部署应用
-
安装部署mysql
-
下载MySQL镜像
docker search mysql:8.0 NAME DESCRIPTION STARS OFFICIAL AUTOMATED lkhoho/mysql Thin wrapper of official mysql:8.0 image. 0 benoit93260/mysql-server8.0.19 server mysql:8.0.19 CentOs7 mysql-shell:8.0.… 0 bolinz/mysql mysql:8.0.26 0 k2jeans/mysql mysql:8.0.32 VOLUME ~/data/mysql:/var/lib/my… 0 phunkytube/mysql Like mysql:8.0.19 but turns OFF skip-name-re… 0 kamatimaru/mysql80-ja Added Japanese support settings to mysql:8.0… 0 c3p16l12/mysql Built with mysql:8.0.13. 0 lahouely/mysql8_utf8_native_password A custom mysql image based on mysql:8.0 with… 0 bogdan1980b/mysql mysql:8.0.19 with a default DB named database 0 strongxyz/mysql gcr.io/ml-pipeline/mysql:8.0.26 0 jaykangta/maze-mysql based on mysql:8.0 0 horiasuciu/mysql mysql:8.0 - Version used by WorldPress Appli… 0 candresortizm1/mysql-getting-started Image based on mysql:8.0 official image 0 flandycheng/gaoqi_mysql8 docker run --name gaoqi-mysql -e MYSQL_ROOT… 0 jagenwen/mysql docker run -d -it -p 3306:3306 --name mysql … 0 vkvich/zabbix-mysql mysql:8.0 0 dockerbsm/phpmyadmin-mysql phpmyadmin/phpmyadmin:5.1.1 & mysql:8.0.27 0 docker pull bolinz/mysql 8.0.26: Pulling from bolinz/mysql b380bbd43752: Pull complete f23cbf2ecc5d: Pull complete 30cfc6c29c0a: Pull complete b38609286cbe: Pull complete 8211d9e66cd6: Pull complete 2313f9eeca4a: Pull complete 7eb487d00da0: Pull complete a5d2b117a938: Pull complete 1f6cb474cd1c: Pull complete 896b3fd2ab07: Pull complete 532e67ebb376: Pull complete 233c7958b33f: Pull complete Digest: sha256:882e55f40d61034a2bb8a1abab1353571ad2a33866f382350788eb34740528b5 Status: Downloaded newer image for bolinz/mysql:8.0.26 docker.io/bolinz/mysql:8.0.26 docker images REPOSITORY TAG IMAGE ID CREATED SIZE bolinz/mysql 8.0.26 9da615fced53 2 years ago 514MB -
启动MySQL容器
docker run -d --name mysql8 -p 3308:3306 --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD='123456' bolinz/mysql:8.0.26 -d 后台启动,-it:前端启动,送一个命令行界面 --name:容器名,自定义 -p :宿主端口:容器端口->映射端口,因为原端口容易被容器外的程序占用 --restart=always : 伴随docker一起启动 --privileged=true : 进入容器使用root权限 -e 设置项:设置环境变量 bolinz/mysql :镜像文件名,一般放到命令的最后,要和本地镜像仓库的名字一样,可以使用image id 输出如下: 5d2c5acbb658fec2df418d9b917846ec2e880684fb94b5ae85163ace65544766 -
检查容器运行状态
docker ps -a #-a 显示所有状态的容器,缺省的话只显示运行中的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5d2c5acbb658 bolinz/mysql:8.0.26 "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 33060/tcp, 0.0.0.0:3308->3306/tcp, :::3308->3306/tcp mysql8 netstat -nptl|grep3308 # 检查端口运行状态 tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 15585/docker-proxy tcp6 0 0 :::3308 :::* LISTEN 15592/docker-proxy
-
-
部署tomcat
-
拉取tomcat的镜像文件
docker search tomcat8.5 docker pull 镜像名 -
运行tomcat容器
docker run -d --name tomcat8 -p 8090:8080 -v 宿主目录:容器目录 镜像名 -v 宿主目录:挂载目录:挂载目录,这里的作用就是把tomca的webapps挂载到宿主目录,方便我们在宿主目录操作它。 -
查看容器运行日志
docker logs 容器名 -
删除容器
docker rm [-f] 容器名 -
删除镜像文件
docker rmi 镜像名
-
基础
Docker 是一个开源的容器化平台,它可以用于构建、部署和运行应用程序和服务。容器化是一种轻量级的虚拟化技术,它允许你在容器中封装应用程序和其依赖项,然后在不同的环境中运行这些容器,而无需担心环境差异。以下是使用 Docker 的基本步骤:
-
安装 Docker:
首先,你需要安装 Docker。根据你的操作系统,可以从 Docker 官方网站下载并安装 Docker。Docker 提供了适用于 Windows、macOS 和各种 Linux 发行版的版本。
-
运行容器:
一旦安装了 Docker,你可以使用命令行或图形用户界面工具来创建和运行容器。以下是一些常见的 Docker 命令:
-
创建并运行一个容器:
docker run -it --name mycontainer ubuntu:latest 这将在一个名为
mycontainer
的容器中运行最新版本的 Ubuntu 镜像。 -
列出正在运行的容器:
docker ps -
停止容器:
docker stop mycontainer -
删除容器:
docker rm mycontainer
-
-
构建自定义镜像:
除了使用现有的容器镜像,你还可以创建自定义镜像。你可以编写一个 Dockerfile 来定义如何构建你的镜像,然后使用
docker build
命令构建它。例如:docker build -t my-custom-image . -
使用 Docker Compose:
Docker Compose 是一个工具,用于定义和运行多个 Docker 容器的应用程序。你可以使用一个 YAML 文件来定义应用程序的服务,包括容器镜像、网络设置、环境变量等。然后,使用
docker-compose
命令启动整个应用程序。 -
共享和发布镜像:
你可以通过 Docker Hub 或其他容器仓库来共享和发布你的 Docker 镜像。这使得其他人可以轻松地获取你的镜像并在其环境中运行它。
-
提交镜像文件:docker commit
-
导出本地镜像文件:docker save -o 路径/xxx.tar
-
导入tar文件到本地镜像库:docker load --input xxx.tar
这只是 Docker 的基本用法。Docker 还提供了许多功能,如容器网络、存储卷、服务编排等,可以帮助你更好地管理和扩展容器化应用程序。你可以深入学习 Docker 的各个方面,以充分发挥其潜力,适应你的特定需求。还可以探索容器编排工具,如 Docker Swarm 和 Kubernetes,用于管理多个容器的复杂应用程序。
进阶
Docker 提供了许多进阶命令,可以用于更复杂的容器管理任务。以下是一些常见的 Docker 进阶命令:
-
查看容器日志:使用
docker logs
命令可以查看容器的标准输出日志。docker logs container_name -
进入正在运行的容器:使用
docker exec
命令可以进入正在运行的容器,以便在容器内执行命令。docker exec -it container_name /bin/bash -
导出和导入容器:使用
docker export
命令可以将容器导出为一个文件,然后使用docker import
命令将其导入为一个新的镜像。docker export container_name > container.tar docker import container.tar new_image_name -
暂停和恢复容器:使用
docker pause
和docker unpause
命令可以暂停和恢复容器的执行。docker pause container_name docker unpause container_name -
查看容器内的进程:使用
docker top
命令可以查看容器内运行的进程。docker top container_name -
重命名容器:使用
docker rename
命令可以为容器重命名。docker rename old_container_name new_container_name -
查看容器的详细信息:使用
docker inspect
命令可以查看容器的详细配置信息。docker inspect container_name -
查找容器:使用
docker ps
命令可以查找容器,可以使用各种选项来筛选和排序结果。docker ps -a (显示所有容器) docker ps -q (仅显示容器ID) docker ps --filter "status=running" (仅显示正在运行的容器) -
移除所有已停止的容器:使用以下命令可以删除所有已停止的容器。
docker container prune -
容器之间的连接和通信:Docker 提供了一些命令,如
docker network create
和docker network connect
,用于创建和管理容器之间的网络连接,以便它们可以相互通信。 -
宿主和容器之间拷贝文件:
docker cp 宿主目录 容器id|容器名:容器目录
这些是一些 Docker 的进阶命令,它们可以帮助你更灵活地管理和操作容器。要详细了解这些命令的用法和选项,请查阅 Docker 的官方文档或运行 docker --help
来查看命令的帮助信息。
本文作者:mio
本文链接:https://www.cnblogs.com/Miomizu/p/17831663.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步