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

原文地址:https://www.cnblogs.com/ychun/p/14403588.html