Docker
Install Docker
sfuser@consul-docker:~$ sudo curl -sSL https://get.docker.com/ | sh
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Processing triggers for ureadahead (0.100.0-16) ...
+ sudo -E sh -c docker version
Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:35:49 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:35:49 UTC 2015
OS/Arch: linux/amd64
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker sfuser
Remember that you will have to log out and back in for this to take effect!
sfuser@consul-docker:~$
sfuser@consul-docker:~$ sudo usermod -aG docker sfuser
Get docker info
sfuser@consul-docker:~$ docker info
Containers: 1
Images: 2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 4
Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-32-generic
Operating System: Ubuntu 14.04.1 LTS
CPUs: 1
Total Memory: 1.955 GiB
Name: consul-docker
ID: QJ72:MQ5H:OIGU:RA2T:U3OC:DHQ4:6X3Q:G733:W4TQ:BKHV:K2O4:SCS2
WARNING: No swap limit support
List docker container
sfuser@consul-docker:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Create ubuntu Docker Container
The -i flag starts an interactive container. The -t flag creates a pseudo-TTY that attaches stdin and stdout.
To detach the tty without exiting the shell, use the escape sequence Ctrl-p + Ctrl-q.
The container will continue to exist in a stopped state once exited.
To list all containers, stopped and running use the docker ps -a command.
sfuser@consul-docker:~$ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6071b4945dcf: Pull complete
5bff21ba5409: Pull complete
e5855facec0b: Pull complete
8251da35e7a7: Pull complete
Digest: sha256:1572e29178048ad9ab72e78edd4decc91a3d8a8dea0ca39817efc7cf2d86c6d7
Status: Downloaded newer image for ubuntu:latest
root@8586cac8e2aa:/#
root@8586cac8e2aa:/#
root@8586cac8e2aa:/# docker ps
bash: docker: command not found
root@8586cac8e2aa:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:2 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9644 (9.6 KB) TX bytes:816 (816.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@8586cac8e2aa:/# exit
exit
sfuser@consul-docker:~$ docker ps
List of Docker Containers
sfuser@consul-docker:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8586cac8e2aa ubuntu "bash" 6 minutes ago Exited (0) 4 minutes ago jolly_franklin
1b83d78dbd90 hello-world "/hello" 8 minutes ago Exited (0) 8 minutes ago adoring_fermi
Simple Web service with Docker
sfuser@consul-docker:~$ cd docker-sample/
sfuser@consul-docker:~/docker-sample$ pwd
/home/sfuser/docker-sample
#Create a small file called Dockerfile with below contents
sfuser@consul-docker:~/docker-sample$ cat Dockerfile
FROM python:3
EXPOSE 80
CMD ["python3", "-m", "http.server"]
#In the same directory as this file execute:
sfuser@consul-docker:~/docker-sample$ docker build -t python3/server .
Sending build context to Docker daemon 2.048 kB
Step 0 : FROM python:3
---> 545faa5764ae
Step 1 : EXPOSE 80
---> Using cache
---> 4faf813a70fa
Step 2 : CMD python3 -m http.server
---> Using cache
---> 6973d0271dad
Successfully built 6973d0271dad
#This will build the docker container and call it python/server, which can be run with:
sfuser@consul-docker:~/docker-sample$ docker run -it -p 8000:80 python3/server
Serving HTTP on 0.0.0.0 port 8000 ...
#To test that it is running we can call the service with curl:
sfuser@consul-docker:~$ curl http://0.0.0.0:8000
curl: (52) Empty reply from server
Docker commands
Stop container
$docker stop <container name>
Start container
$docker start <container name>
Delete container
$docker rm <container name>
Delete all container
$docker rm $(docker ps -aq)
List running containers
$docker ps
List all containers
$docker ps -a
List all container id
$docker ps -aq