docker使用 docker运行Jenkins docker运行MySQL docker运行mariadb+testlink docker运行selenium 制作镜像
1、下载
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
2、配置国内加速器加速镜像下载
https://www.cnblogs.com/atuotuo/p/6264800.html
docker 默认安装位置
/var/lib/docker
镜像信息记录:/var/lib/docker/image/overlay2/repositories.json
镜像位置(每一个序号就是一个镜像):/var/lib/docker/containers
3、基本命令
查看所有镜像:docker images
查看某个镜像:docker images|grep mysql
下载指定版本镜像:docker pull mysql:5.7
删除指定版本镜像:docker rmi mysql:5.7
修改本地tag名称:docker tag mysql:5.7(旧名称) mysqlnew(新)
压缩:docker save mysql > mysql.tar
解压:docker load mysql < mysq.tar
查看当前启动的所有容器:docker ps
运行容器: docker run --name myjenkins -v /docker-data:/var/lib/docker/data -p 8989:8080 -d jenkinsci/jenkins (8989为宿主机端口,8080 容器端口)
删除正在运行的容器: docker rm -f myjenkins
查看容器日志:docker logs -f myjenkins
登录容器:docker exec -it myjenkins bash
运行bash docker exec myjenkins ping www.baidu.com
将容器文件复制到宿主机:docker cp myjenkins:var/jenkins_home/test.txt .
Jenkins 密码位置 /var/jenkins_home/secrets/initialAdminPassword
首先进入Jenkins --》docker exec -it myjenkins bash
查看文件 cat /var/jenkins_home/secrets/initialAdminPassword
运行Jenkins
下载Jenkins docker pull jenkinsci/jenkins 查看是否下载成功 docker images
运行
docker run --name myjenkins -v /docker-data/jenkins_home:/var/jenkins_home -p 8989:8080 -d jenkinsci/jenkins
权限问题:https://www.cnblogs.com/ychun/p/14406718.html
查看正在运行的容器
docker ps
关闭
docker rm -f myjenkins
运行MySQL
查看数据库文件存放位置:show global variables like
"%datadir%"
;
数据库文件默认存放位置:/var/lib/mysql
下载Jenkins docker pull mysql 查看是否下载成功 docker images 运行 MYSQL_ROOT_PASSWORD不能少,用于设置登录密码
docker run -d --name some-mysql -v /docker-data/mysql_home:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 8988:3306 -d mysql
查看正在运行的容器
docker ps
本地连接
docker exec -it some-mysql bash
mysql -hlocalhost -uroot -p
-->输入密码,123456
远程连接,在本地连接成功的基础之上
1)添加远程登录用户
CREATE USER 'newroot'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
2)赋予用户所有表的权限
GRANT ALL PRIVILEGES ON *.* TO 'newroot'@'%';
3)刷新权限
FLUSH PRIVILEGES;

关闭
docker rm -f some-mysql
mariadb+testlink
参考文档:https://hub.docker.com/_/mariadb
testlink:https://hub.docker.com/r/bitnami/testlink
下载
docker pull bitnami/mariadb
docker pull bitnami/testlink
查看
docker images
官网:https://hub.docker.com/r/bitnami/testlink
Step 1:创建一个 network (if it does not exist) docker network create testlink-network
Step 2.创建一个 MariaDB 容器 在宿主机容器 $ docker volume create --name mariadb_data $ docker run -d --name mariadb \ --env ALLOW_EMPTY_PASSWORD=yes \ --env MARIADB_USER=bn_testlink \ --env MARIADB_PASSWORD=bitnami \ --env MARIADB_DATABASE=bitnami_testlink \ --network testlink-network \ --volume /docker-data/mariadb:/var/lib/mariadb \ bitnami/mariadb:latest
Step 3. Create the TestLink the container with host volumes $ docker volume create --name testlink_data $ docker run -d --name testlink \ -p 8987:8080 -p 8444:8443 \ --env ALLOW_EMPTY_PASSWORD=yes \ --env TESTLINK_DATABASE_USER=bn_testlink \ --env TESTLINK_DATABASE_PASSWORD=bitnami \ --env TESTLINK_DATABASE_NAME=bitnami_testlink \ --network testlink-network \ --volume /docker-data/testlink:/var/lib/testlink \ bitnami/testlink:latest
查看是否启动成功
docker ps
如果有容器没有显示,利用docker logs -f xxxx查看启动日志
报错
cannot create directory '/bitnami/mariadb/data': Permission denied
配置正常访问 ip:8987
DOCKER-selenium
https://github.com/seleniumhq/docker-selenium
下载 docker pull selenium/hub 启动 docker run --name=hub -p 8989:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:latest
节点一
docker run --name=chrome -p 8988:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome:latest
访问:ip:8989/
制作镜像
参考文档;https://docs.docker.com/engine/reference/builder/
目标:制作centos镜像,启动镜像可以访问本地百度页面
step1 :创建一个文件夹
mkdir dockerfile-baidu
step2:进入文件夹 dockerfile-baidu,创建文件entrypoint.sh,开启一个Python的web服务
cd dockerfile-baidu
vim entrypoin.sh
-->进入编辑
#!/bin/bash
cd /root/cgi-bin
python -m SimpleHTTPServer 8080
step3: 复制百度首页
curl http://www.baidu.com > index.html
step4:在文件夹 dockerfile-baidu,创建文件Dockerfile
vim Dockerfile
-->编辑,创建文件夹 /root/cgi-bin,作为Python的web服务启动文件夹,将启动文件entrypoint.sh复制进文件夹,以及百度首页复制进去,安装一些软件,暴露8080端口,设置容器的入口 /root/cgi-bin/entrypoint.sh
from centos:7
RUN mkdir /root/cgi-bin
ADD entrypoint.sh /root/cgi-bin
ADD index.html /root/cgi-bin
RUN yum install -y vim gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
EXPOSE 8080
ENTRYPOINT ["/bin/bash","/root/cgi-bin/entrypoint.sh"]
step5 制作镜像
docker build -t mybaidu:v1 .
step6查看是否制作成功
docker images
step7启动容器
docker run --name mybaidu -d -p 8989:8080 -v /docker/baidu:/var -t mybaidu:v1
step8 查看启动 log
docker logs -f mybaidu
出现下图,代表启动成功

访问:ip:8989/
FROM:基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER:镜像维护者的姓名和邮箱地址 RUN:容器构建时需要运行的命令 EXPOSE:当前容器对外暴露出的端口 WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点 ENV:用来在构建镜像过程中设置环境变量 ADD:将宿主机目录下的文件拷贝进镜像且 ADD 命令会自动处理 URL 和解压 tar 压缩包 COPY:类似 ADD,拷贝文件和目录到镜像中。(COPY src dest 或 COPY ["src","dest"]) VOLUME:容器数据卷,用于数据保存和持久化工作 CMD:指定一个容器启动时要运行的命令,Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换 ENTRYPOINT:指定一个容器启动时要运行的命令,ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数
环境变量ENV
联合文件系统
https://testerhome.com/topics/9522
Docker四种网络模式
https://www.jianshu.com/p/22a7032bb7bd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~