Unix Container: Difference between revisions

From Objectif Client Inc
Jump to navigation Jump to search
Line 143: Line 143:
</syntaxhighlight>
</syntaxhighlight>


=====List Images=====
<syntaxhighlight lang="bash">
docker images
</syntaxhighlight>
=====Run Image=====
<syntaxhighlight lang="bash">
docker run <username>/<applicationname>
</syntaxhighlight>


====Ghost (Blog Server)====
====Ghost (Blog Server)====

Revision as of 02:21, 11 August 2019

Container Howto

Web Site

Docker [docker.com]

Containers at Docker Store [store.docker.com]

Install and run a container

docker run -i -t ubuntu:14:04 /bin/bash

Create an image from a container Commit

"b5673dbced61" is an image id

docker commit -m "Ubuntu 14.10 Demonstrator" -a "Author Name" b5673dbced61 demo:14.10

List Images (Source to initiare a containers)

docker images

Remove an image "b5673dbced61" is an image id

docker rmi b5673dbced61 

Create a volume

docker volume create --name node_red_user_data

List volumes

docker volume ls

List containers (Running Virtual Machines)

  • Running:
 docker ps
  • Full List
 docker ps -a

Start and Stop a container

  • Stop
docker stop "containerId or Name"
  • Start (Batch)
docker start "containerId or Name"
  • Start (and login in)
docker start -i "containerId or Name"

Update a restart option

  • no
  • on-failure
  • unless-stopped
  • always
docker update --restart=on-failure <container>

"Relogin" (Attach) into a Container

  • "Relogin into a running container
docker attach "container Name"

Remove a container

"d0955f21bf24" is a container Id

docker rm d0955f21bf24

Remove all containers

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

More Advence Topics

Build an image from a Dockerfile

docker build -t objectif/appname -f pathtoDockerfile
docker build -t [username]/docker-desktop git://github.com/rogaha/docker-desktop.git

Execute more advances

docker run -i -t --net="bridge" --name Demo -v /opt/docker/data mindesktop:v01.01


Dockerfile Sample

node Js app

  • Create a new directory
Create node app
  • Create package.json
{
  "name": "docker_web_app",
  "version": "1.0.0",
  "description": "Node.js on Docker",
  "author": "First Last <first.last@example.com>",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "^4.16.1"
  }
}
  • Create server.js
'use strict';

const express = require('express');

// Constants
const PORT = 8080;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello world\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
Create Dockerfile
  • Create a file Dockerfile
FROM node:10

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]
  • Create a file .dockerignore
node_modules
npm-debug.log
Build Image
  • Don't forget the "." at the end...
docker build -t <username>/<applicationname> .
List Images
docker images
Run Image
docker run <username>/<applicationname>

Ghost (Blog Server)

FROM komljen/nodejs
MAINTAINER Alen Komljen <alen.komljen@live.com>
ENV GHOST_VERSION 0.5.7
ENV APP_ROOT /data/app
RUN \
curl -sLO http://ghost.org/archives/ghost-${GHOST_VERSION}.zip && \
mkdir -p ${APP_ROOT} && \
unzip -uo ghost-${GHOST_VERSION}.zip -d ${APP_ROOT} && \
rm ghost-${GHOST_VERSION}.zip
RUN \
cd ${APP_ROOT} && \
npm install --production
ADD start.sh start.sh
VOLUME ["$APP_ROOT"]
RUN rm /usr/sbin/policy-rc.d
CMD ["/start.sh"]
EXPOSE 2368

Gui management solution for Docker

Portainer

Web site https://portainer.io

Dashboard access http://localhost:9000/#/dashboard

Deployment

docker run -d --name myPortainer -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer