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