Docker Hello World
本文记录于2020/4/18,注意时效性
Docker安装
以Centos为例安装Docker(Centos版本需要为7.x)
- 如果之前有安装过老版本的docker,先卸载老版本执行
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装yun-utils,(如果已经安装yum-utils可省略此步骤)
sudo yum install -y yum-utils
- 设置Docker仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 正式安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
5.启动Docker
sudo systmectl start docker
DockerHub国内镜像配置
Docker拉取镜像默认源在国外,由于人尽皆知的原因访问较慢或无法访问。所以需要将拉取镜像的位置换为国内。
开通镜像服务并在镜像中心下找到镜像加速器

sudo systemctl restart docker
Docker基础命令
docker pull
拉取容器镜像
docker images
查看当前容器列表
docker ps
查看当前正在运行的实例
docker run 实例id
启动容器,常用参数
-i
即使没有连接到容器实例也让容器实例的标准输入处于打开状态
-t
开启一个虚拟终端
-d
在后台运行该实例
-p
端口映射
-v
绑定卷,类似一个磁盘映射
docker stop 实例id
停止正在运行的实例
详见https://docs.docker.com/reference/
Docker hello-world
万物基于hello world docker官方为我们提供了一个hello-world供我们测试docker是否安装成功。现在运行它。
sudo docker run hello-world

出现这个画面表示安装成功(值得注意的是docker拉取容器镜像的命令是docker pull,但当我们运行某个容器时如果docker在本地没有找到就会去docker hub上拉取并运行。)
输入
sudo docker images
查看刚刚拉去到的hello-word
Docker without sudo
现在已经成功安装并运行了Docker,但有一个小问题我每次使用docker命令的时候都要加sudo这很麻烦对我来说也没必要。
使用gpasswd -a 用户名 docker
将你的用户加入到docker用户组即可省略sudo命令。
运行一个Tomcat容器
前面已经看到要运行某个容器可执行docker run 容器名/容器id
,但为了更清晰运行过程我决定先拉取tomcat容器镜像再执行它。
执行docker pull tomcat
拉取容器镜像,默认拉取最新版镜像即标签为latest(是DockerHub上的最新镜像而不知最新版tomcat)如果想使用特定版本的tomcat请使用docker pull tomcat:标签名

使用
docker images
可以查看当前你的docker中有那些容器镜像

现在使用
docker run tomcat
运行刚刚拉取的容器。
啊,熟悉的tomcat启动界面。
但是,现在使用浏览器访问刚刚启动的tomcat是会失败的,因为我们启动时缺少一个参数
-p
-p可以指定容器内端口与宿主机端口映射关系其格式为-p 宿主机端口号:容器端口号
。现在加上端口号试一试docker run -p 8080:8080 tomcat
。我使用的是虚拟机虚拟机ip为192.168.64.137。访问192.168.64.137:8080
。

啊熟悉的404(⊙﹏⊙)
但是我想放一个自己写的页面怎么办呢,这时就需要另一个重要的参数-v
其作用是将宿主机的文件目录与容器内文件目录绑定。类似与共享目录。首先进入容器内看看容器内tomcat放在了哪里,执行docker run -it tomcat /bin/bash
进入容器。后面紧随其后的/bin/bash表示替换容器启动时执行的命令为/bin/bash。(详见docker run)

可以看到容器内tomcat路径为/usr/local/tomcat。
退出容器执行docker run -d -p 8080:8080 -v /home/alming/wxm:/usr/local/tomcat/webapps tomcat

容器现在已经启动,下图是容器映射的目录映射关系为:
宿主机/home/wxm->容器/usr/local/tocmcat/webapps
wxm下还有一个wxm文件夹,里面有一张小哎咪.jpg

输入192.168.64.137:8080/wxm/fxe.jpg看看可爱的小哎咪吧。

大幻梦森罗万象狂气断罪眼 2333
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现