docker命令合集

docker 镜像基础命令

# 查看当前镜像列表
docker images
# 查询镜像
docker search [镜像名]
#示例
docker search openjdk
# 拉取最新镜像
docker pull [镜像名]
docker pull openjdk11
# 拉取指定版本镜像
docker pull [镜像名]:[版本号]
docker pull java:8
# 删除镜像
docker rmi [镜像名或ID]

docker容器基础命令

# 查看当前所有容器及运行状态
docker ps -a
# 进入容器
docker exec -it [容器名或ID] /bin/bash
# 退出容器
exit
# 查看容器日志
docker logs [容器名或ID]
# 实时刷新查看容器指定行数日志
docker logs -f --tail [行数] [容器名或ID]
# 根据指定镜像容器化运行
docker run 
-d(-d代表后台运行) 
--name [容器名称] 
-p 8080:1234(指定容器端口映射,前面是要映射为哪个端口,后面是要映射的端口,例如mysql默认3306,如果我要改为访问3300端口访问,配置应为-p 3300:3306) 
--restart always(重启策略,always代表容器退出时总是重启,详细参数自行百度。)
-v /home:/etc/profile(表示挂载,也可以理解为映射或快捷方式,比如虚拟机安装了jdk,容器内想要使用,可以通过挂载的方式将虚拟机安装的jdk挂载到容器内,[虚拟机挂载路径]:[容器内路径])
[镜像名称]:[镜像tag,一般是版本号]
# 值得一说的是,如果只有镜像名称,未指定版本号则默认为latest最新版本,如果没有该镜像则立即拉取然后执行启动命令

常用镜像启动命令及常用命令

gitlab及runner

gitlab启动命令

docker run -d --hostname 192.168.1.220 -p 8443:443 -p 9980:80 -p 9922:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

gitlab-runner启动命令

同时挂载maven docker jdk 不太建议容器运行gitlab-runner,ci文件写起来太麻烦,容易遇见权限问题

docker run -d --name gitlab-runner --restart always \
  -v /home/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64:/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64 \
  -v /opt/apache-maven-3.8.8:/opt/apache-maven-3.8.8 \
  -v /opt/repository:/opt/repository \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/bin/docker:/usr/bin/docker \
  gitlab/gitlab-runner:latest

gitlab-runner注册命令

# 注册shell类型的runner
gitlab-runner register \
	# gitlab地址
  --url "https://jihulab.com/" \
  # runner注册令牌
  --registration-token "换成你自己的runner注册令牌" \
  # runner类型 有很多,自行百度
  --executor "shell" \
  # runner描述
  --description "shell-runner" \
  # runner标签,编写ci文件的时候指定runner就是通过标签(tag)指定的,可以为多个
  --tag-list "shell" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

nacos

# 单机运行最新nacos
docker run -d --name nacos -p 18848:8848 -p 19848:9848 -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server

mysql8

docker run -itd --privileged --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31

postgresql

docker run --name postgresql -e POSTGRES_PASSWORD=password -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres

nginx

docker run --name nginx-docker -p 18080:80 -v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/www/:/usr/share/nginx/html/ -v /opt/nginx/logs/:/var/log/nginx/ -v /opt/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx

spring boot

# -e跟自定义参数,这个要看你的Dockerfile怎么写的
docker run -e "[JVM参数]" --name [容器名称] -d -p [服务器映射端口]:[容器内端口] -t [镜像名称]
# 示例
docker run -e "JAVA_OPTS=-DPORT=18082 -DACTIVE_FLAG=pro" --name spring-boot-all -d -p 18081:18082 -t spring-boot-all

我不太喜欢写Dockerfile,是通过maven插件直接配置的,下面是我的maven插件配置

<!--  maven 插件  -->
<properties>
        <java.version>17</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.0.2</spring-boot.version>
        <slf4j-api.version>2.0.7</slf4j-api.version>

        <!--    docker镜像相关    -->
        <docker.baseImage>scratch</docker.baseImage>
        <docker.volumes>/home</docker.volumes>
        <docker.image.prefix>192.168.1.000:2375</docker.image.prefix>
        <docker.java.security.egd>-Djava.security.egd=file:/dev/./urandom</docker.java.security.egd>
        <docker.java.opts>-Xms256m -Xmx256m</docker.java.opts>
        <docker-maven-plugin.version>1.2.2</docker-maven-plugin.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker-maven-plugin.version}</version>
                <configuration>
                    <!--打包docker镜像的docker服务器-->
                    <dockerHost>http://${docker.image.prefix}</dockerHost>
                    <!--指定dockerfile文件路径-->
                    <!--                    <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>-->
                    <!--镜像名称及版本[ip:port/name:tag]-->
                    <imageName>${project.artifactId}</imageName>
                    <!--基础镜像 scratch:虚拟镜像,代表本镜像不以任何镜像为基础-->
                    <baseImage>${docker.baseImage}</baseImage>
                    <!--配置挂载目录-->
                    <volumes>${docker.volumes}</volumes>
                    <!--配置执行命令
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <env>
                        <JAVA_OPTS>${docker.java.opts}</JAVA_OPTS>
                    </env>-->
                    <entryPoint>
                        ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"]
                    </entryPoint>
                    <!-- optionally overwrite tags every time image is built with docker:build -->
                    <forceTags>true</forceTags>
                    <!--配置镜像tag,这里指定了两个tag(最新的版本号和latest)-->
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!-- copy the service's jar file from target into the root directory of the image -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <serverId>docker</serverId>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴躁码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值