docker环境部署和阿里云镜像管理学习笔记

docker相关命令

#info|version
docker info       #显示docker的系统信息,包括镜像和容器的数量
docker version    #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm
#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
#删除所有容器
docker rm -f $(docker ps -aq)  	 #删除所有的容器
docker ps -a -q|xargs docker rm  #删除所有的容器
#启动和停止容器
docker start 容器id	#启动容器
docker restart 容器id	#重启容器
docker stop 容器id	#停止当前正在运行的容器
docker kill 容器id	#强制停止当前容器
#退出容器
exit 		#容器直接退出
ctrl +P +Q  #容器不停止退出 	---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名  #后台启动命令
docker logs 		#查看日志
docker top 容器id 	#查看容器中进程信息ps
docker inspect 容器id  #查看镜像的元数据
docker exec 		#进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach 		# 进入容器正在执行的终端
docker cp 容器id:容器内路径  主机目的路径	#从容器内拷贝到主机上

安装docker

Dockerfile入门指令:
指令使用描述
FROM构建新镜像基于哪个源,可指定版本号(默认拉取最新)如FROM centos:7、FROM centos7.9
MAINTAINER维护者信息
RUN用来执行命令行命令;shell格式: RUN <命令> ,输入在bash环境中的命令即可,一个dockerfile允许使用RUN不得超过127层,所以,使用一次RUN, 使用 ‘ \ ’ 换行,使用‘ && ’执行下一条命令。一般使用此种格式;
COPY复制文件。格式:COPY <源路径>…<目标路径>
ADD更高级的复制文件,在COPY的基础上增加了一些功能,如果复制的是压缩包的话,会直接解压,而不需要在使用RUN解压
CMD容器启动命令,只有最后一个CMD会生效;如CMD /bin/bash 表示用bash启动
ENV设置环境变量
VOLUME定义匿名卷
EXPOSE暴露端口
WORKDIR指定工作目录。 WORKDIR <工作目录路径>
ENTRYPOINT指定容器启动时运行该命令,可追加命令
Dockerfile文件内容
nginx环境
# 指定基础镜像
FROM ubuntu:20.04

# 维护者信息
MAINTAINER yxs

# 下载基础配置
RUN apt-get update && apt-get install -y vim \
 && apt install -y net-tools && apt install -y systemctl

# 下载nginx
RUN apt-get install -y nginx

# 拷贝nginx.conf文件
COPY ./nginx.conf /etc/nginx/nginx.conf
java8环境
# 指定基础镜像
FROM ubuntu:20.04

# 维护者信息
MAINTAINER yxs

# 下载基础配置
RUN apt-get update && apt-get install -y vim \
 && apt install -y net-tools && apt install -y systemctl

# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/java8

# 拷贝jdk和java项目jar包
COPY ./jdk-8u191-linux-x64.tar.gz $JAVA_DIR/
COPY ./xxx.jar /usr/project/backend/xxx.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk-8u191-linux-x64.tar.gz

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/jdk1.8.0_191
ENV CLASSPATH=.:$JAVA_HOOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

# 暴露端口
EXPOSE 7082
# 入口,java项目的启动命令
# ENTRYPOINT ["/usr/software/commands.sh"]
运行
  • 创建一个文件夹存储镜像

    mkdir /usr/docker/front
    
  • 创建命令(相关文件放在dockerfile同一目录下)

    docker build -t dockerfront:1.0 .
    
  • 启动镜像容器

    # dockerfront为指定的docker运行容器名称(自定义), 7083为宿主机开放端口,7082为docker容器暴露端口,这里是将docker容器端口映射到宿主机端口,外面才能访问,-d后面接docker镜像
    sudo docker run -it --name dockerfront -p 7083:7082 -d dockerfront:1.0
    
  • 进入容器

    # 进入docker容器
    sudo docker exec -it dockerfront /bin/bash
    
  • 启动后需要做的几件事:

    # 进入后端容器启动后端程序
    # 开启后端
    java -jar /usr/project/backend/xxx.jar &
    

    分成前后端和数据库三个镜像

  • 目录挂载,在上面的启动容器命令中加上-v和对应的目录映射关系即可,有几个挂载就放几个-v

    docker run -id -v /mydata/docker_nginx/data:/usr/local/data --name nginx-01 nginx
    docker run -id -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名
    

镜像打包

容器打包
# 示例
sudo docker commit -m "容器说明" 容器id/别名 打包后的镜像名:版本号

# 前端
sudo docker commit -m "dockerfront" dockerfront docker_front:1.0

# 后端
sudo docker commit -m "dockerback" dockerback docker_back:1.0
镜像备份成tar
# 示例
sudo docker save -o 目录/xxx.tar 需要打包的镜像名:版本号

# 前端
sudo docker save -o /usr/docker/docker_front.tar docker_front:1.0

# 后端
sudo docker save -o /usr/docker/docker_back.tar docker_back:1.0
上传到阿里云
  • 进入阿里云的控制台找到容器镜像服务

    image20230714173517421.png

  • 点击命名空间——创建命名空间

    image20230714173728932.png

  • 点击个人实例,选择创建镜像仓库

    image20230714173619526.png

  • 填写镜像仓库信息,仓库名最好和需要上传的一致,命名空间选择上一步创建的,摘要写一下说明就行。

    image20230714173956435.png

  • 下一步——选择本地仓库——创建镜像仓库

    image20230714174023102.png

  • 这里展示阿里云镜像的一些使用说明
    image20230714174209013.png

    # 前端
    sudo docker tag 镜像id registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_front:1.0
    sudo docker push registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_front:1.0
    
    # 后端
    sudo docker tag 镜像id registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_back:1.0
    sudo docker push registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_back:1.0
    
  • 拉取镜像

     # 前端
     sudo docker pull registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_front:1.0
     
     # 后端 
     sudo docker pull registry.cn-hangzhou.aliyuncs.com/cabbageship-test/docker_back:1.0
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值