目录
二、 查看运行过的ubuntu容器的CONTAINER ID
一、 准备构建一个nginx服务的应用镜像
1、 拉取最新的ubuntu镜像
# 拉取ubuntu镜像文件
docker pull ubuntu:latest
2、 启动ubuntu镜像容器,并进入容器
# 启动ubuntu容器
docker run -it ubuntu:latest
# -d 容器后台运行
# 如果加了参数d, 容器后台运行时,需要手动连接运行的容器
# docker exec -it xxxxx /bin/bash
# xxx : 运行的容器的CONTAINER_ID , 可以通过docker ps 查看
3、 进入容器后,在ubuntu系统内安装nginx服务
# 进入容器后,相当于进入了ubuntu系统内, 由于当前ubuntu系统镜像是干净的系统,内部没有任何熟知的命令
# 需要自己手动安装, 使用 apt-get 命令安装
# 当前使用的按钮nginx的方法是默认系统安装,如果想手动安装软件包,这里不做详细解释,只是简单介绍
# 系统安装nginx
apt-get update && apt-get install nginx
# 一定需要apt-get update 更新下软件源, 否则找不到nginx软件包
# 手动安装nginx
# 1. 需要下载nginx软件包
# 2. 解压nginx软件包
# 3. cd到解包的nginx目录下
# 4. 执行命令 make && make install 安装nginx软件
# 手动安装的软件包一般在 /usr/local/ext/ 目录下
二、 查看运行过的ubuntu容器的CONTAINER ID
# 查看所有的容器
docker ps -a
# -a :查看所有的容器,不管容器是否运行状态
# 不加-a参数, 查看正在运行的容器
C:\Users\FreedomX>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e58e57842e06 ubuntu:latest "bash" About a minute ago Exited (3) 7 seconds ago frosty_bhabha
3d278dbae4d2 mysql:5.7 "docker-entrypoint.s…" 8 days ago Up 31 minutes 33060/tcp, 0.0.0.0:13680->3306/tcp mysql-data
c55a7e69114b redis:latest "docker-entrypoint.s…" 10 days ago Exited (255) 7 days ago 0.0.0.0:6379->6379/tcp redis-data
三、 重新生成新的镜像文件
# 构建新的镜像文件
docker commit -m="nginx single service" -c "CMD nginx -g 'daemon off;'" -a="xxx" e58e57842e06 nginx-service:1.0
# -c : 可以修改dockerfile的默认启动命令, 让nginx在启动容器时前台运行
# -m : 对镜像文件的描述
# -a : 镜像文件的维护者
# e58e57842e06 : 容器ID, 需要从哪个容器ID里构建, 可以通过docker ps里查看
# nginx-service:1.0 : 新镜像文件的名称和标签 <name>:<tag>
四、 提交新生成的镜像文件到镜像仓库
1、 先注册并登录到镜像仓库网站平台 Docker仓库
2、 需要先在镜像仓库网站平台内创建一个存储仓库
3、 在本地命令行执行下面的命令
# 1. 如果本地镜像名称和远程仓库的名称一致,则不需要执行
# 否则需要先将本地要推送的镜像打上标签和远程仓库的名称一致
docker tag nginx-service:1.0 xxxx/nginx-servie:1.0
# 第一个nginx-service:1.0 : 本地的镜像文件名称和标签 <name>:<tag>
# xxx : 远程仓库的用户名称
# 第二个nginx-service:1.0 : 远程仓库的名称和标签
# 2. 登录到镜像仓库
docker login
# 3. 推送到镜像仓库
docker push xxx/nginx-service:1.0
# xxx/nginx-service:1.0 : 刚刚打标签的镜像文件 <name>:<tag>
五、 新镜像文件的使用
# 镜像的使用
# 如果本地没有该镜像文件,可以直接从镜像仓库内拉取
docker pull xxx/nginx-service:tagname
# xxx/nginx-service : 镜像名称
# tagname : 镜像标签
六、 使用nginx镜像启动部署项目
# run 启动镜像容器
docker run -p 80:80 -v ./nginx.conf:/etc/nginx/conf.d/nginx.conf -v ./dist/:/var/www/html/ -itd xxx/nginx-service:tagname
# -p : 端口映射 宿主机端口:容器内部端口
# -d : 容器后端运行
# -v : 映射本地文件或目录同步容器内的文件或目录, 映射后修改本地的文件,容器内及时修改
# exec 连接运行中的容器
docker exec -it xxxx /bin/bash
七、 镜像仓库地址
freedomx20/php7.4-fpm - Docker Image | Docker Hubhttps://hub.docker.com/r/freedomx20/php7.4-fpm
八、 附注: 常用软件的前台运行命令
nginx:
nginx -g "daemon off;"
apache:
httpd -DFOREGROUND
Tomcat:
catalina run
php-fpm:
php-fpm -F
# 如果是7.4版本的则命令 php-fpm7.4 -F
redis:
redis-server