Farid Ahmadian / DevOps

Docker


Install Docker


on-ubuntu-16-04

source : https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

sudo apt-get update
sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo “deb https://apt.dockerproject.org/repo ubuntu-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
apt-cache policy docker-engine

You should see output similar to the follow:

Output of apt-cache policy docker-engine
docker-engine:
Installed: (none)
Candidate: 1.11.1-0~xenial
Version table:
1.11.1-0~xenial 500
500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
1.11.0-0~xenial 500
500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages


sudo apt-get install -y docker-engine
sudo systemctl status docker

The output should be similar to the following, showing that the service is active and running:

Output
● docker.service – Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago
Docs: https://docs.docker.com
Main PID: 749 (docker)

Executing the Docker Command Without Sudo (Optional)

sudo usermod -aG docker $(whoami)

now you must logout to ensure all privilage is write


RUN or START


run : runs an image

start : starts a container.

The docker run doc does mention: The docker run command first creates a writeable container layer over the specified image, and then starts it using the specified command.

That is, docker run is equivalent to the API /containers/create then /containers/(id)/start. You do not run an existing container, you docker exec to it (since docker 1.3). You can restart an exited container.


Docker HUB


https://hub.docker.com/

MySQl and WordPress with Docker


docker run -v /var/lib/mysql –name farid-some-mysql -e MYSQL_ROOT_PASSWORD=zanjan -e MYSQL_DATABASE=wordpress -d mysql
docker run -it -v /home/sinic/wordpress:/var/www/html/wp-content/ -p 8080:1395 –name farid-some-ubuntu3 –link farid-some-mysql:mysql ubuntu/apache:wordpress

How To Use MYSQL in Wordpress container

define(‘DB_NAME’, exec(‘echo $MYSQL_DATABASE’));

/** MySQL database username */
define(‘DB_USER’, ‘root’);

/** MySQL database password */
define(‘DB_PASSWORD’, exec(‘echo $MYSQL_ENV_MYSQL_ROOT_PASSWORD’));

/** MySQL hostname */
define(‘DB_HOST’, exec(‘echo $MYSQL_PORT_3306_TCP_ADDR’));

/** Database Charset to use in creating database tables. */
define(‘DB_CHARSET’, ‘utf8’);

/** The Database Collate type. Don’t change this if in doubt. */
define(‘DB_COLLATE’, ”);

How To MONITOR containers


docker ps
docker ps -a
docker stats

How To Copy files in a container


docker cp Downloads/wordpress-4.5.2-fa_IR.zip kickass_thompson:/var/www/html

Export and Import Images


You will need to save the docker image as a tar file:

docker save -o <save image to path> <image name>

Then copy your image to a new system with regular file transfer tools such as cp or scp. After that you will have to load the image into docker:

docker load -i <path to image tar file>

PS: You may need to sudo all commands.


Networking modes


docker run –net=”bridge” (default)
docker run –net=”host”

Detach fron a running container


If you do “docker attach “container id” you get into the container. To exit from the container without stopping the container you need to enter “Ctrl+P+Q” better to Ctrl+P and Ctrl+Q


Open new shell in a container


docker exec -it sinic-osticket bash

BY: Farid Ahmadian
TAG: docker
DATE: 2016-08-1 10:36:53


Farid Ahmadian / DevOps [ TXT ]

With many thanks and best wishes for dear Pejman Moghadam, someone who taught me alot in linux and life :)