首页 > 技术文章 > Docker常用命令

qsdtc 2022-02-11 11:28 原文

#从镜像仓库下载镜像
docker pull 镜像名:版本TAG(不指定版本,默认最新版本 :latest)
例:docker pull nginx
#==================================================
#查看镜像列表
docker images
#==================================================
#运行镜像
docker run -d(后台运行) -p 外部端口:内部端口 镜像名称
#可选参数
--name 容器名称
--restart=always 开机启动
-v 映射文件
#例
docker run -d -p 80:80 --name="mynginx" -v /logs/mypoject/runtime:/portal/runtime  --restart=always mypoject:last test
#==================================================
#查看正在运行的容器
docker ps
#查看所有容器
docker ps -a
#查看容器日志
docker log 容器id
#==================================================
#进入容器
#docker exec -it 容器ID(能标识唯一即可) bash
docker exec -it 307444rttytty bash
#==================================================
#删除容器
#docker rm -f 容器ID(能标识唯一即可)
#例
docker rm -f 307444rttytty
#==================================================
#导出镜像到文件
#docker save 镜像名称 >导出的文件名称.tar
#docker save -o 导出的文件名称(必须是小写).tar 镜像名称(推荐)
#例
docker save imagename >imagefile.tar
docker save -o imagefile2.tar imagename
#==================================================
#删除镜像
#docker rmi 镜像ID
#例
docker rmi imageid
#==================================================
#导入镜像
#docker load < imagefile.tar(这条语句Windows环境下报错)
docker load -i imagefile2.tar
#==================================================
【Dockerfile的使用】
#Dockerfile文件内容

FROM niginx
RUN mkdir -p /poject/mypoject
COPY ./ /poject/mypoject/
RUN cd COPY ./ /poject/mypoject;\
chmod -R 777 /poject
WORKDIR /poject/mypoject/
ENV TZ "Asia/Shanghai"
ENV LANG "zh_CN.UTF-8"
# 创建卷
#VOLUME []
#EXPOSE 9002
# 初始化 容器启动时 启动的进程
#CMD ["/poject/mypoject/run.sh"]
ENTRYPOINT ["/poject/mypoject/run.sh"]
USER root

创建run.sh文件(此文件格式必须是:set fileformat=unix,就是文件要在Linux创建,尽量不要windos打开。否则会报错)

#!/bin/bash
CONFIG_DIR="/poject/mypoject/conf/"
rm "${CONFIG_DIR}app.conf"
if [ $1 == "test" ]
then
echo "do start test"
cp "${CONFIG_DIR}app_test.conf" "${CONFIG_DIR}app.conf"
elif [ $1 == "prod" ]
then
echo "do start prod"
cp "${CONFIG_DIR}app_prod.conf" "${CONFIG_DIR}app.conf"
elif [ $1 == "prodtc" ]
then
echo "do start prod tc"
cp "${CONFIG_DIR}app_prodtc.conf" "${CONFIG_DIR}app.conf"
else
echo "it's running dev"
cp "${CONFIG_DIR}app_dev.conf" "${CONFIG_DIR}app.conf"
fi
nohup ./mypoject 1>/dev/null 2>>errlog

1-19行 为根据不同的命令加载不同环境的配置
20行 为各语言的启动命令(这里用的是golang)
#根据Dockerfile打包
#docker build -t 镜像名称(必须是小写) Dockerfile所在目录
#例 (.)是当前目录,记得点号不要漏了
docker build -t mypoject:v2020 .
 
#使用各个docker仓库
登录
docker login -u 用户名 -p 密码 网址
创建镜像
docker build -t mypoject:v2020 .
打个tag
docker tag 之前建的镜像id docker仓库地址/mypoject:v2020 
然后就可以push上docker仓库了
docker push docker仓库地址/mypoject:v2020 
 
 
 
 

推荐阅读