Показаны сообщения с ярлыком docker. Показать все сообщения
Показаны сообщения с ярлыком docker. Показать все сообщения

вторник, 1 января 2019 г.

Настройка ufw совместно с docker

Fail2ban варианты настройки для wordpress в docker

Настройка nginx в Docker-compose

Docker-compose: идеальное рабочее окружение

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

$ mkdir  -p /home/user/production_nginx
$ nano /home/user/production_nginx/docker-compose.yml

version: '3'

services:
   nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
     - ./src:/usr/share/nginx/html
     - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    restart: always
    ports:
      - 80:80
      - 443:443

Сохранить.


$ sudo nano /home/user/production_nginx/nginx.conf

worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        root   /usr/share/nginx/html;
        listen       80;
        server_name  zaz60.com;

        location / {
            index  index.html index.htm;
        }
    }
}

Сохранить.

$ mkdir src
$ nano src/index.html

Hi, I'am Nginx

Сохранить.

$ docker-compose up -d

$ docker-compose down

Вариант с SSL сертифиикатами

$ sudo chown -R user:user certs



$ nano /home/user/production_nginx/docker-compose.yml

version: '3'

services:
   nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
     - ./src:/usr/share/nginx/html
     - ./nginx/nginx.conf:/etc/nginx/nginx.conf
     - ./certs:/etc/letsencrypt
    restart: always
    ports:
      - 80:80
      - 443:443

Сохранить.


$ sudo nano /home/user/production_nginx/nginx.conf

worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        root   /usr/share/nginx/html;
        listen       80;
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;
        server_name  zaz60.com;

        location / {
            index  index.html index.htm;
        }
    }
}

Сохранить.

$ mkdir src
$ nano src/index.html

Hi, I'am Nginx

Сохранить.

$ docker-compose up -d

$ docker-compose down




понедельник, 31 декабря 2018 г.

Получение Let's Encrypt Certificate используя docker и nginx


Для обоих вариантов осводим порт 80 !!!
Вариант № 1 (левый quay.io/letsencrypt/letsencrypt)
Let's Encrypt Certificate Generation Using Docker

$ mkdir -p /home/user/letsencrypt/certs

$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx

$ docker run -it --name letsencrypt  --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt --volumes-from nginx quay.io/letsencrypt/letsencrypt certonly --agree-tos --webroot --webroot-path /usr/share/nginx/html -m certs@zaz60.com -d zaz60.com -d www.zaz60.com

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zaz60.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zaz60.com/privkey.pem
   Your cert will expire on 2019-03-31. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

$ docker stop nginx
$ docker rm nginx

Сертификаты /home/user/letsencrypt/certs

Вариант № 2 (официальный certbot/certbot)
Generate and renew Let’s Encrypt Certificates for Apache with Certbot Docker container

$ mkdir -p /home/user/letsencrypt/certs

$ docker pull certbot/certbot

$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx

$ docker run -it --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt  --volumes-from nginx certbot/certbot certonly --webroot --webroot-path=/usr/share/nginx/html -d zaz60.com --email info@zaz60.com --agree-tos

 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zaz60.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zaz60.com/privkey.pem
   Your cert will expire on 2019-03-31. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Сертификаты /home/user/letsencrypt/certs


Вариант № 3 (показался мне самым лучшим)
Automating the management of HTTPS certificates in a Dockerized environment with Let’s Encrypt

$ docker volume create --name certs
$ docker run -v certs:/etc/letsencrypt -e http_proxy=$http_proxy -e domains="www.zaz60.com" -e email="info@zaz60.com" -p 80:80 -p 443:443 --rm pierreprinetti/certbot:latest

Сертификаты /var/lib/docker/volumes/certs/_data/

Запускаем Postfix в Docker-контейнере и настраиваем PTR, SPF, DKIM и DMARC

Настройка обратного прокси nginx docker-compose на примере wordpress

Setting up a Reverse-Proxy with Nginx and docker-compose
Use NGINX As A Reverse Proxy To Your Containerized Docker Applications
Docker compose : NGINX reverse proxy with multiple containers
Nextcloud via Docker with nginx reverse proxy
Docker Compose wordpress

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

$ mkdir  -p /home/user/wordpress
$ nano /home/user/wordpress/docker-compose.yml

version: '3'

services:
   db:
     image: mysql:5.7
     container_name: db
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     container_name: wordpress
     expose:
       - "80"
     volumes:
       - html:/var/www/html
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress

   nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
     - ./nginx.conf:/etc/nginx/nginx.conf
     - ./certs:/etc/letsencrypt
    restart: always
    ports:
      - 80:80
      - 443:443

volumes:
    db_data:
    html:

Сохранить

$ nano /home/user/production_nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
  upstream target {
      server wordpress:80;
  }

  server {
      listen 443 ssl;
      server_name zaz60.com;
      ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;

      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://target;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
          proxy_read_timeout 900s;
      }
  }

  server {
      listen 80;
      server_name zaz60.com;
      return 301 https://$server_name$request_uri;
  }
}

Сохранить

$ cd /home/user/wordpress

$ docker-compose up -d
$ docker-compose down


воскресенье, 30 декабря 2018 г.

Установка Rancher 1.6

Installer Rancher 1.6 avec let's encrypt sur Ubuntu
# apt update -y
# apt upgrade -y
# apt install mc -y
# adduser user
# usermod -aG sudo user
# reboot
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Отпечаток ключа = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo usermod -aG docker $(whoami)
$ sudo reboot

 
$ docker run -d --restart=always -p 8080:8080 rancher/server
http://ip:8080

$ cd ~
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto
$ ./certbot-auto certonly
$ sudo apt-get install nginx
$ sudo nano /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
  upstream target {
      server localhost:8080;
  }

  server {
      listen 443 ssl;
      server_name www.zaz60.com;
      ssl_certificate /etc/letsencrypt/live/www.zaz60.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/www.zaz60.com/privkey.pem;

      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://target;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
          proxy_read_timeout 900s;
      }
  }

  server {
      listen 80;
      server_name www.zaz60.com;
      return 301 https://$server_name$request_uri;
  }
}

Сохранить.

$ sudo nginx -t
$ sudo service nginx restart

суббота, 22 декабря 2018 г.

Установка MediaWiki в docker


Installing and Using MariaDB via Docker
Docker Official Images mariadb
mediawiki

Удалить все контейнеры
$ docker rm -f $(docker ps -aq)

$ docker pull mariadb/server:10.3
Задаем пароль root  mypass :
------------------------------------------------------------------------------------------------------------------------ 
Вариант через link
$ docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -d mariadb/server:10.3
$ docker run --name some-mediawiki --link mariadbtest -p 80:80 -d mediawiki

Хост базы данных mariadbtest

------------------------------------------------------------------------------------------------------------------------
Вариант через ip host 
$ docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -p 3306:3306 -d mariadb/server:10.3

$ docker run --name some-mediawiki -p 80:80 -d mediawiki 
Хост базы данных ip host

------------------------------------------------------------------------------------------------------------------------

$ docker exec -it some-mediawiki bash
# apt update
# apt install mc nano
Скачать LocalSettings.php по ссылке полученной в процессе конфигурации
# nano LocalSettings.php
Вставить  содержимое LocalSettings.php
$wgEnableUploads = true

# exit

Справка:Форматирование

понедельник, 26 ноября 2018 г.

Docker 1С сервер в контейнере ubuntu 16.04


$ cd cd ~/
$ git clone https://github.com/renbuar/1c-server.git
$ cd ~/1c-server
$ cp ~/test/1c-enterprise83-common_8.3.14-1373_amd64.deb ~/1c-server
$ cp ~/test/1c-enterprise83-server_8.3.14-1373_amd64.deb ~/1c-server
$ cp ~/test/fonts-ttf-ms_1.0-eter4ubuntu_all.deb ~/1c-server
$ cp ~/test/haspd_7.60-eter1ubuntu_amd64.deb ~/1c-server
$ cp ~/test/haspd-modules_7.60-eter1ubuntu_amd64.deb  ~/1c-server
$ cd ~/1c-server
$ docker build --tag 1c-server .
$ docker volume create --name 1c-server

Запуск со стандартными портами:
 
Запуск тестовый
$ docker run -ti -h u1604 --name 1c-server --rm --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server:/home/usr1cv8 1c-server:latest

$ docker run -ti -h u1604 --name 1c-server --rm --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -p 8080:8080 -v 1c-server:/home/usr1cv8 1c-server:latest


Запуск разовый

$ docker run -d -h u1604 --name 1c-server --rm --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server:/home/usr1cv8 1c-server:latest


Запуск с перезапуском

$ docker run -d -h u1604 --name 1c-server --restart=always --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server:/home/usr1cv8 1c-server:latest


$ docker exec -ti 1c-server mc

воскресенье, 25 ноября 2018 г.

Backup и операции в контейнере docker PostgreSQL

24.1. Дамп SQL 
cd ~/pg-967_1c
Собираем образ командой:
docker build -t pg:967_1c .
docker volume create --name pgdata
Запускаем:
docker run --detach --rm --volume pgdata:/var/lib/postgresql/data --name pg1c --publish 5432:5432 pg:967_1c

Постоянный запуск :
docker run --detach --restart=always --volume pgdata:/var/lib/postgresql/data --name pg1c --publish 5432:5432 pg:967_1c


----------------------------------------------------------------------------------------------------
$ docker exec -i  pg1c /usr/bin/pg_dump -U postgres demo1 | gzip > ~/demo1.sql.gz

Backup одной базы demo1:
$ docker exec -t -u postgres pg1c /usr/bin/pg_dump demo1 -c > demo1_`date +%d-%m-%Y"_"%H_%M_%S`.sql

Restore  в туже базу:
$ cat demo1_26-11-2018_17_31_53.sql | docker exec -i pg1c psql -Upostgres
Restore  в другую базу:
$ cat demo1_26-11-2018_17_31_53.sql | docker exec -i pg1c psql -Upostgres demo2


Backup, restore postgres in docker container

dumpall все базы
$ docker exec -t -u postgres pg1c /usr/bin/pg_dumpall -c > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

Restore:
cat dump_26-11-2018_17_19_25.sql | docker exec -i pg1c psql -Upostgres



$ docker exec -t -u postgres pg1c /usr/bin/vacuumdb --verbose --analyze --full --quiet --username postgres --dbname=demo1



docker exec -i nlc-pg1cTest psql -U postgres -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'log_prod' AND pid <> pg_backend_pid();" && \
docker exec -i nlc-pg1cTest psql -U postgres -c "drop database log_prod;" && \
docker exec -i nlc-pg1cTest psql -U postgres -c "create database log_prod;" && \
cat /backups/sql/$DATE/log_prod.custom | docker exec -i nlc-pg1cTest sh -c "pg_restore -d 'postgres://postgres:пароль@127.0.0.1/log_prod' -v -1"


Docker 1С сервер 2 в контейнере ubuntu 14.04

За основу возьмем
Но но используем свой fork
$ cd cd ~/
$ git clone https://github.com/renbuar/1c_server2.git
$ cd ~/1c_server2/8.3.14-1373
$ cp ~/test/1c-enterprise83-common_8.3.14-1373_amd64.deb ~/1c_server2/8.3.14-1373
$ cp ~/test/1c-enterprise83-server_8.3.14-1373_amd64.deb ~/1c_server2/8.3.14-1373
$ cp ~/test/haspd_7.60-eter1ubuntu_amd64.deb ~/1c_server2/8.3.14-1373
$ cp ~/test/haspd-modules_7.60-eter1ubuntu_amd64.deb ~/1c_server2/8.3.14-1373
$ docker build --tag 1c-server2 .
$ docker volume create --name 1c-server2
Запуск тестовый
$ docker run -ti -h u1604 --name 1c-server-2 --rm --privileged -p 2540:2540 -p 2541:2541 -p 2560-2591:2560-2591 -p 475:475 -p2947:2947 -v 1c-server2:/home/usr1cv8 1c-server2:latest
Запуск разовый
$ docker run -d -h u1604 --name 1c-server-2 --rm --privileged -p 2540:2540 -p 2541:2541 -p 2560-1591:2560-1591 -p 475:475 -p1947:1947 -v 1c-server2:/home/usr1cv8 1c-server2:latest

Без проброса портов ml:

Запуск тестовый
$ docker run -ti -h u1604 --name 1c-server-2 --rm --privileged -p 2540:2540 -p 2541:2541 -p 2560-2591:2560-2591 -v 1c-server2:/home/usr1cv8 1c-server2:latest

Запуск разовый
$ docker run -d -h u1604 --name 1c-server-2 --rm --privileged -p 2540:2540 -p 2541:2541 -p 2560-1591:2560-1591 -v 1c-server2:/home/usr1cv8 1c-server2:latest

Запуск с перезапуском
$ docker run -d -h u1604 --name 1c-server-2 --restart=always --privileged -p 2540:2540 -p 2541:2541 -p 2560-1591:2560-1591 -v 1c-server2:/home/usr1cv8 1c-server2:latest

суббота, 24 ноября 2018 г.

Docker 1С сервер 1 в контейнере ubuntu 14.04

За основу возьмем
Но но используем свой fork

$ cd cd ~/
$ git clone https://github.com/renbuar/1c_server1.git

$ cd ~/1c_server1/8.3.14-1373

$ cp ~/test/1c-enterprise83-common_8.3.14-1373_amd64.deb ~/1c_server1/8.3.14-1373
$ cp ~/test/1c-enterprise83-server_8.3.14-1373_amd64.deb ~/1c_server1/8.3.14-1373
$ cp ~/test/haspd_7.60-eter1ubuntu_amd64.deb ~/1c_server1/8.3.14-1373
$ cp ~/test/haspd-modules_7.60-eter1ubuntu_amd64.deb ~/1c_server1/8.3.14-1373

$ docker build --tag 1c-server1 .

$ docker volume create --name 1c-server1

Запуск тестовый
$ docker run -ti -h u1604 --name 1c-server-1 --rm --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server1:/home/usr1cv8 1c-server1:latest

Запуск разовый

$ docker run -d -h u1604 --name 1c-server-1 --rm --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server1:/home/usr1cv8 1c-server1:latest


Запуск с перезапуском

$ docker run -d -h u1604 --name 1c-server-1 --restart=always --privileged -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 -p 475:475 -p1947:1947 -v 1c-server1:/home/usr1cv8 1c-server1:latest
 



Docker 1С сервер в контейнере ubuntu 14.04

За основу возьмем
Но но используем свой fork
$ cd cd ~/
$ git clone https://github.com/renbuar/1c_server.git
$ cd ~/1c_server/8.3.14-1373
$ cp ~/test/1c-enterprise83-common_8.3.14-1373_amd64.deb ~/1c_server/8.3.14-1373
$ cp ~/test/1c-enterprise83-server_8.3.14-1373_amd64.deb ~/1c_server/8.3.14-1373
$ docker build --tag 1c-server .
Запуск с --net=host разово:
$ docker run -d --name 1c-server --rm --net=host 1c-server:latest


При каждом создании контейнера нужно пересоздавать  базу.
Что бы не не пересоздавать можно так:

$ docker run -d --name 1c-server --net=host 1c-server:latest
Затем создав базу останавливать  :

$ docker stop 1c-server

При необходимости запускать сноваа:

$ docker start 1c-server

При необходимости запустить несколько контейнеров (порты должны быть разные)


Например:
Есть host имя u1604
ip 192.168.1.238
на host docker и PostgrSQL
1c в контенейре
$ docker run -ti -h u1604 --name 1c-server --rm -p 1540:1540 -p 1541:1541 -p 1560-1591:1560-1591 1c-server:latest


поскольку оба хоста имеют одно имя Сервер баз данных задаем по ip

У второго контейнера должно отличаться имя и порты

Ниже точно не правильно сервер знает что он на порту 1541 и пойдет обращение  на другой сервер, если он включен.

$ docker run -d -h u1604 --name 1c-server-1 --rm -p 2540:1540 -p 2541:1541 -p 2560-2591:1560-1591 1c-server:latest


Нужно построить контейнер с другим портами и запустить так:

$ docker run -d -h u1604 --name 1c-server-1 --rm -p 2540:2540 -p 2541:2541 -p 2560-2591:2560-2591 1c-server:latest

При создании базы в поле Кластер серверов указать u1604:2541


docker volume create --name 1c-server

-v 1c-server:/home/usr1cv8 или --mount source=1c-server,target=/home/usr1cv8


Окончательно:

$ docker run -d -h u1604 --name 1c-server-1 --rm -p 2540:1540 -p 2541:1541 -p 2560-2591:1560-1591 -v 1c-server:/home/usr1cv8 1c-server:latest

суббота, 17 ноября 2018 г.

Установка последней версии Docker CE for Ubuntu

Get Docker CE for Ubuntu
Документация
Вопросы с тегом 'docker'
Шпаргалка с командами Docker

$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$ sudo apt autoremove
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Отпечаток ключа = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#---------------------------------------------------------------------------------------------------
deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
#---------------------------------------------------------------------------------------------------

$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo usermod -aG docker $(whoami)



$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         4 minutes ago       Exited (0) 27 seconds ago                       objective_volhard


Посомтреть образы
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               4a689991aa24        4 weeks ago         116MB

Посмотреть все контейнеры
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         6 minutes ago       Exited (0) About a minute ago                       objective_volhard


Старт контейнера 596a60786863
$ docker start 596a60786863
596a60786863

Посмотреть активные контейнеры  
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         7 minutes ago       Up 36 seconds                           objective_volhard

Подключиться к работающему контейнеру
$ docker exec -it 596a60786863 /bin/bash
root@596a60786863:/#

Выйти из консоли
root@596a60786863:/# exit
exit

Посмотреть активные контейнеры 
user@u1604:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         12 minutes ago      Up 5
minutes                            objective_volhard

Остановить контейнер  596a60786863
$ docker stop 596a60786863
596a60786863

Посмотреть активные контейнеры
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Удалить все контейнеры
$ docker rm -f $(docker ps -aq)

Удалить все образы
$ docker rmi -f $(docker images -q)
 

пятница, 16 ноября 2018 г.

Как установить Docker в Ubuntu 16.04

За основу берем руководство:Как установить и использовать Docker в Ubuntu 16.04
How to Install and Use Docker on Ubuntu 16.04
Установка docker на Ubuntu 16.04
Get Started
Official Repository

$ lsusb
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
$ sudo apt-get update

$ apt-cache policy docker-engine
docker-engine:
  Установлен: (отсутствует)
  Кандидат:   17.05.0~ce-0~ubuntu-xenial
  Таблица версий:
     17.05.0~ce-0~ubuntu-xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     17.04.0~ce-0~ubuntu-xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages

Обратите внимание, что docker-engine не установлен, для установки будет использован репозиторий Docker для Ubuntu 16.04. Версия docker-engine может отличаться от указанной в нашем примере.

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

Для того, чтобы не вводить sudo каждый раз при запуске docker, добавьте имя своего пользователя в группу docker:
$ sudo usermod -aG docker $(whoami) 

$ docker
Посмотреть установленные образы
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
Удалить образ

$ docker rmi ubuntu:16.04

Создать образ с просмотром репозитария

##$ docker run ubuntu:16.04 grep -v '^#' /etc/apt/sources.list
$ docker run -it  ubuntu:16.04

root@596a60786863:/#
# apt update
# apt upgrade
# apt install mc nano
# apt install usbutils
# lsusb
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
# exit

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         4 minutes ago       Exited (0) 27 seconds ago                       objective_volhard


Посомтреть образы
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               4a689991aa24        4 weeks ago         116MB

Посмотреть все контейнеры
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         6 minutes ago       Exited (0) About a minute ago                       objective_volhard


Старт контейнера 596a60786863
$ docker start 596a60786863
596a60786863

Посмотреть активные контейнеры  
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         7 minutes ago       Up 36 seconds                           objective_volhard

Подключиться к работающему контейнеру
$ docker exec -it 596a60786863 /bin/bash
root@596a60786863:/#

Выйти из консоли
root@596a60786863:/# exit
exit

Посмотреть активные контейнеры 
user@u1604:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
596a60786863        ubuntu:16.04        "/bin/bash"         12 minutes ago      Up 5
minutes                            objective_volhard

Остановить контейнер  596a60786863
$ docker stop 596a60786863
596a60786863

Посмотреть активные контейнеры
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Удалить все контейнеры
$ docker rm -f $(docker ps -aq)

Удалить все образы
$ docker rmi -f $(docker images -q)

четверг, 23 марта 2017 г.

Docker

Postgresql 9.2.4 для 1С в контейнере Docker
1С в контейнере. Быстро и недорого
temrdm
Используем Docker для безопасного веб-серфинга
Зачем нужен Docker и практика работы с ним
Docker
Linux Docker 0.9 - краткое практическое руководство
Ставим ubuntu 14.04.5 server на virtualbox, ssh, samba
имя ubuntu

Подключаемся MobaXterm по ssh:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic x86_64)
$ sudo -i
Проверка локали
# locale
LANG=ru_RU.UTF-8
....
# apt-get update
# apt-get upgrade
# apt-get install mc htop
# poweroff

Экспортируем виртуальный образ ubuntu.ova
Подключаемся MobaXterm по ssh:
$ sudo -i
Добавляем ключ:
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
Добавляем репозитарий
# sh -c "echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"
# apt-get update
# apt-get install lxc-docker
# exit
Чистый образ:
sudo docker run -i -t ubuntu:precise /bin/bash
В контейнере:
# apt-get update
# apt-get install nano wget bzip2 mc
# cat /etc/lsb-release
 # exit
Зафиксируем образ:
$ sudo docker commit CONTAINER_ID stormbp/precise-clean
$ sudo docker commit 7773ae6fd4ce stormbp/precise-clean
[sudo] password for user:
a6976b74739f6d1f89eeb4e970c4c356438f60ddac0af8ba59ea51548b51c4ee

CONTAINER_ID легко брать из командной строки когда работаете внутри контейнера:
он выглядит так:
root@af40b772abbf:/data/main#
Хеш после root@ и есть ID контейнера.
Имя контейнера (stormbp/precise-clean) поставьте свое, главное обойтись без заглавных букв, будет ошибка.

Запустим новый экземпляр из шаблона:
$ sudo docker run -i -t stormbp/precise-clean /bin/bash
.