ict.ken.be

Delivering solid user friendly software solutions since the dawn of time.

This section of the website is used as a technical dump and knowledge database. Plenty of times we run into issues we have seen before or problems that come back again and again. we plot down notes and check points, so we can come back here and use them as a reference. Do not expect long tutorials. Just the core things you need, nothing more.

Use any of this information carefully and at your own risk, but feel free to contact us if you spot any issues.

0x80004005 - CIFS SMB Sambo Network Share Error 

Categories: Network

So you are using windows 2008r2 or any of it variants and you are trying to connect to a network share in some workgroup.

You get this unspecified error when your network adaptor does not include 'Client for Microsoft Networks', which is often forgotten when virtual network adaptors are created automatically.

  • Control Panel > Network and Sharing > Change Adaptor settings > Select your current network adaptor > Install > Client > Client for Microsoft Networks > OK > ... > restart or enable/disable network adaptor

Docker 

Categories: Virtualization

How

  • Kernel Namespaces - Isolation
  • Control Groups (cgroups) - Resource Utilization
  • Capabilities - Privilege Partitioning
  • Every container gets its own writable top layer
  • One process per container, but we can run multiple processes

Who & What

  • dotCloud - Solomon Hykes
  • docker witten in Golang started by using LXC (evolved into libcontainer)

Getting started

For windows 2008R2 install docker from:

Documentation at https://docs.docker.com/

Browse images at https://hub.docker.com/explore/

Commands for quickstart terminal

  • docker-machine
  • docker-machine ip
  • docker-machine ls
  • docker-machine env

  • docker --help

  • docker info
  • docker run hello-world
  • docker images
  • docker ps -a
  • docker rm distracted_minksy
  • docker rmi c54a2
  • docker run container-name
  • docker run -d -p 80:80 container-name:mayor.minor
  • docker run container-name --cpu-shares=1024 --memory=1g
  • docker stop c54
  • docker stop $(docker ps -a -q)
  • docker inspect c54 | grep Pid
  • docker top container-name
  • docker kill -s docker

  • docker run ubuntu /bin/bash -c "echo 'some line in a file' > /tmp/some-file"

  • docker commit container-name custom-image
  • docker history custom-image
  • docker save -o /tmp/custom-image.tar custom-image
  • tar -tf /tmp/custom-image.tar
  • docker load -i /tmp/custom-image.tar
  • docker network create --driver bridge customisolatednetwork
  • docker run -d --net=customisolatednetwork container-name
  • docker logs container-name
  • docker --debug ps

  • docker-compose build

  • docker-compose build --no-cache
  • docker-compose up -d
  • docker-compose logs
  • docker-compose down

Portmapping: /var/lib/docker/containers/[hashofthe_container]/hostconfig.json

Shortcut Keys

  • Exit container without killing it: ctrl + P + Q

Shell

  • docker attach
  • ssh
  • docker-enter 8b
  • docker exec -it 8b /bin/bash
  • docker run -v /usr/local/bin:/target jpetazzo/nsenter
  • nsenter -m -u -n -p -i -t /bin/bash

Dockerfile

  • docker build -t hellonginx:0.1 .
  • docker build -f custom.dockerfile -t kenowi/custom
  • docker run hello printechothismessage

Volumes

Store data in directory on host

  • docker run -it -v /test-dir --name=testvolume ubuntu:15.04 /bin/bash
  • docker run -it --volumes-from=testvolume ubuntu:15.04 /bin/bash
  • docker run -v /data-dir-host:/data-dir-container
  • docker rm -v testvolume

Networking

  • apt-get install bridge-utils
  • brctl show docker0
  • cat /etc/resolv.conf
  • docker run --dns=8.8.4.4 --name=dnstest my-image
  • docker port containername
  • docker run -d -p 192.168.56.50:5000:80/udp --name=overudp my-image
  • docker run -d -P my-image
  • docker run --name=src -d my-image
  • docker run --name=dst --link=src:alias-src -it ubuntu:15.04 /bin/bash
  • env | grep ALI
  • cat /etc/hosts

Registry

  • hub.docker.com
  • docker tag imageid kenowi/custom
  • docker push kenowi/custom:1.0
  • docker pull kenowi/custom:1.0
  • docker run -d -p 5000:5000 registry

Docker on Ubuntu

  • sudo su
  • uname -a
  • apt-get update
  • apt-get install -y docker.iodo
  • service docker.io status
  • docker -v
  • docker version
  • docker info
  • ls -l /run
  • cat etc/group
  • sudo gpasswd -a my-user docker
  • logout
  • docker run -it ubuntu /bin/bash
  • exit
  • netstat -tlp
  • service docker stop
  • docker -H 192.168.56.50:2375 -d &
  • docker -H 192.168.56.50:2375 -H unix:///var/run/docker.sock -d &
  • ls -l /var/lib/docker/aufs/diff/
  • docker start ff7
  • docker attach ff7
  • alias dps="docker ps"
  • service docker stop
  • docker -d -l debug &

Docker on CentOS

  • yum install -y docker
  • systemctl start docker.service
  • systemctl status docker.service
  • export DOCKER_HOST="tcp://192.168.56.50:2375"
  • export DOCKER_HOST=
  • ps -elf
  • cat /etc/hosts
  • ip a
  • cat /etc/redhat-release
  • yum check-update
  • yum install -y vim
  • vim /tmp/testfile
  • :wq

Docker and Fedora

  • docker run -it fedora /bin/bash
  • docker pull -a fedora
  • docker images fedora
  • pstree
  • man
  • iostat

Docker and CoreOS

  • docker pull coreos/etcd

Selenium

https://github.com/SeleniumHQ/docker-selenium

https://hub.docker.com/u/selenium/

  • docker run -d ‐‐name selenium-hub -p 4444:4444 selenium/hub
  • docker run -d -P ‐‐link selenium-hub:hub selenium/node-chrome
  • docker run -d -P ‐‐link selenium-hub:hub selenium/node-firefox

docker-compose.yml

seleniumhub: image: selenium/hub ports: - 4444:4444

firefoxnode: image: selenium/node-firefox ports: - 5900 links: - seleniumhub:hub

chromenode: image: selenium/node-chrome ports: - 5900 links: - seleniumhub:hub

  • docker-compose up -d
  • docker-compose scale chromenode=3

NGinx

  • docker pull kitematic/hello-world-nginx

Gitlab

  • sudo docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

  • docker run gitlab/gitlab-ce

More

Deprecated

  • docker images --tree

 

Selenium Unable to cast object of type 'System.String' to type 'System.Collections.Generic.Dictionary 

Categories: Testing

When using Selenium remember that if you are connecting to a linux grid the url for the remote driver is case sensitive.

Mostly when you get this error it is because the url to the grid is wrong !

eg. http://192.168.99.100:4444/wd/hub

System.InvalidCastException

Unable to cast object of type 'System.String' to type 
'System.Collections.Generic.Dictionary`2[System.String,System.Object]'.
 at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
 at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
at ken.Selenium.Errors.SeleniumTests.ShouldHaveNoJavascriptErrors(String url) in d:\Sources.Sandbox\Ken\ken.Selenium.Errors\...\SeleniumTests.cs:line 79

System.Net.WebException Too many automatic redirections were attempted 

Categories: .Net

Assuming you do not need more then 50 redirects, your webpage probably redirects because of a missing cookie. Which can not be set because you didn't add a cookie container...

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Get;
request.CookieContainer = new CookieContainer();
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var stream = new StreamReader(response.GetResponseStream()))
{
string html = stream.ReadToEnd();
...
}
}

In case you do need more redirects or more likely less... you can set this property:

request.MaximumAutomaticRedirections = 5;
Page 1 of 39 1 2 3 4 5 6 7 8 9 10 20 > >>