You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
Build Docker image
-
Useful Command
// run with interactive shell $ docker run -it <image> /bin/bash // list running process $ docker ps // list images $ docker images // $ docker exec -it <container id> /bin/bash // print app output $ docker logs <container id> // build docker image. image name cannot use camel case $ docker build -t <target-image-name> . // store image in tart file $ docker save <generated-image-name> -o ./store/<generated-image-name>.tar // upload tar image to server $ rsync -rzvP ./store/<generated-image-name>.tar ubuntu@<serverip>:~/apps/<image-name>/ $ ssh ubuntu@<serverip> $ cd ~/apps/<image-name> $ docker-compose stop $ docker load -i <image-name>.tar $ docker-compose up -d --build -
testing http
$ curl -i localhost:5000 HTTP/1.1 200 OK X-Powered-By: Express Content-Type: text/html; charset=utf-8 Content-Length: 12 ETag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0" Date: Mon, 13 Nov 2017 20:53:59 GMT Connection: keep-alive Hello world -
sample deploy script
# docker way docker build -t razer-pay-direct-fast-middleware:latest . docker save razer-pay-direct-fast-middleware:latest -o ./docker-local/razer-pay-direct-fast-middleware.tar # upload docker image and compose file to the server rsync -rzvP ./docker-local/razer-pay-direct-fast-middleware.tar docker-compose.yml ubuntu@172.88.1.101:~/apps/razer-pay-direct-fast-middleware/ ssh ubuntu@172.88.1.101 << EOF cd ~/apps/razer-pay-direct-fast-middleware pwd echo "Stopping Container..." docker-compose stop echo "Loading new Docker image..." docker load -i razer-pay-direct-fast-middleware.tar echo "Restarting Container..." docker-compose up -d --build echo "Container restarted." EOF echo "Deployed successfully." -
user permission
// create docker group
$ sudo groupadd docker
// add current user to group
$ sudo usermod -aG docker ${USER}
// reboot system for group privillege to take effect
// test run
$ docker run hello-world