Last active
January 25, 2020 06:18
-
-
Save kudaliar032/f71a3a44f886552cc64e4a17e4815c01 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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