Skip to content

Instantly share code, notes, and snippets.

@kudaliar032
Last active January 25, 2020 06:18
Show Gist options
  • Save kudaliar032/f71a3a44f886552cc64e4a17e4815c01 to your computer and use it in GitHub Desktop.
Save kudaliar032/f71a3a44f886552cc64e4a17e4815c01 to your computer and use it in GitHub Desktop.
# LAB1 | Docker Image
## Pull Image
docker pull alpine
docker pull ubuntu:18.04
## Dockerfile
mkdir docker-image
cd docker-image
https://docs.docker.com/engine/reference/builder/
vim Dockerfile
```
FROM ubuntu:18.04
RUN apt update -y && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80
```
docker build -t latihan1 .
docker images
docker run -d latihan1
---
mkdir weather-app
cd weather-app
git clone https://github.com/linuxacademy/content-weather-app.git src
vim Dockerfile
```
FROM node:lts
WORKDIR /app
ADD src/ /app/
RUN npm install
EXPOSE 3000
CMD ./bin/www
```
docker build -t kudaliar032/weather-app:v1 .
docker run -d --name weather-app1 -p 8000:3000 kudaliar032/weather-app:v1
## Environment Variable
mkdir env
cd env
```
--env [KEY]=[VALUE]
or
ENV [KEY]=[VALUE]
ENV [KEY] [VALUE]
```
git clone https://github.com/linuxacademy/content-weather-app.git src
vim Dockerfile
```
FROM node:lts
ENV NODE_ENV=development
ENV PORT 3000
WORKDIR /app
ADD src/ /app/
RUN npm install
EXPOSE $PORT
CMD ./bin/www
```
docker build -t kudaliar032/weather-app:v2 .
docker images
docker image inspect kudaliar032/weather-app:v2
printenv
docker run -d --name weather-dev -p 8080:3030 --env PORT=3030 kudaliar032/weather-app:v2
docker inspect weather-dev
access [IP-SERVER]:8080
docker run -d --name weather-app2 -p 8181:3131 --env PORT=3131 --env NODE_ENV=production kudaliar032/weather-app:v2
docker ps
docker inspect weather-app2
access [IP-SERVER]:8181
docker ps
docker stop [CONTAINER-NAME]
## Build Agruments
```
--build-arg [KEY]=[VALUE]
ARG [KEY]=[DEFAULT_VALUE]
```
mkdir args
cd args
git clone https://github.com/linuxacademy/content-weather-app.git src
vim Dockerfile
```
FROM node:lts
ARG SRC_DIR=/app
WORKDIR $SRC_DIR
ADD src/ $SRC_DIR
RUN npm install
EXPOSE 3000
CMD ./bin/www
```
docker build -t kudaliar032/weather-app:v3 --build-arg SRC_DIR=/var/code .
docker images
docker image inspect kudaliar032/weather-app:v3 | grep WorkingDir
docker run -d --name weather-app3 -p 8000:3000 kudaliar032/weather-app:v3
access [IP-SERVER]:8000
docker ps
docker stop [CONTAINER-NAME]
## Docker Image with Volume
mkdir volumes
cd volumes
vim Dockerfile
```
FROM nginx
VOLUME ["/usr/share/nginx/html"]
```
docker build -t kudaliar032/nginx:v1 .
docker run -d --name nginx-volume kudaliar032/nginx:v1
docker inspect nginx-volume
docker volume ls
docker volume inspect [VOLUME-NAME]
docker ps
docker stop [CONTAINER-NAME]
## Entrypoint and Commands
mkdir entrypoint
cd entrypoint
git clone https://github.com/linuxacademy/content-weather-app.git src
vim Dockerfile
```
FROM node:lts
ENV NODE_ENV="production"
ENV PORT 3000
ARG SRC_DIR=/app
WORKDIR $SRC_DIR
ADD src/ $SRC_DIR
RUN npm install
EXPOSE $PORT
ENTRYPOINT ./bin/www
```
docker build -t kudaliar032/weather-app:v4 .
docker run -d --name weather-app4 kudaliar032/weather-app:v4
docker inspect weather-app4 | grep Cmd
docker run -d --name weather-app5 -p 8000:3000 kudaliar032/weather-app:v4 echo "Hello World"
docker inspect weather-app5
## .dockerignore
mkdir dockerignore
cd dockerignore
git clone https://github.com/linuxacademy/content-weather-app.git src
cd src
git checkout dockerignore
cd ../
vim .dockerignore
```
# Ignore these files
*/*.md
*/.git
src/docs/
*/tests/
```
vim Dockerfile
```
FROM node:lts
ENV NODE_ENV="production"
ENV PORT 3000
ARG SRC_DIR=/app
WORKDIR $SRC_DIR
ADD src/ $SRC_DIR
RUN npm install
EXPOSE $PORT
ENTRYPOINT ["./bin/www"]
```
docker build -t kudaliar032/weather-app:v5 .
docker images
docker run -d --name weather-app-ignore kudaliar032/weather-app:v5
docker exec weather-app-ignore ls -lha /app
## Image history
docker history [IMAGE-NAME]
```
-H: Humanable
--no-trunc: Don't truncate output
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment