This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
docker:docker [2020/06/23 09:24] – [Commands] tmade | docker:docker [2024/01/05 12:10] – [docker-compose] tmade | ||
---|---|---|---|
Line 4: | Line 4: | ||
Ubuntu: | Ubuntu: | ||
+ | |||
+ | Requirements: | ||
+ | |||
+ | < | ||
+ | apt-get install \ | ||
+ | apt-transport-https \ | ||
+ | ca-certificates \ | ||
+ | curl \ | ||
+ | gnupg-agent \ | ||
+ | software-properties-common | ||
+ | </ | ||
+ | |||
+ | Then: | ||
curl -sSL https:// | curl -sSL https:// | ||
+ | | ||
+ | Check also on: | ||
+ | |||
+ | https:// | ||
SLES: | SLES: | ||
Line 41: | Line 58: | ||
==== Commands ==== | ==== Commands ==== | ||
+ | |||
+ | ===Node/ swarm=== | ||
+ | |||
+ | docker node ls | ||
+ | docker node ls -q | xargs docker node inspect | ||
+ | docker service ls |grep container-name | ||
+ | docker service ps container-id | ||
+ | | ||
=== Container === | === Container === | ||
Line 56: | Line 81: | ||
docker commit my-container ubuntu: | docker commit my-container ubuntu: | ||
docker stats redis1 redis2 | docker stats redis1 redis2 | ||
+ | docker cp containerID:/ | ||
+ | docker cp -a server.key cf755a260e93:/ | ||
| | ||
**Forcefully delete all containers, so pay attention!!** | **Forcefully delete all containers, so pay attention!!** | ||
Line 68: | Line 95: | ||
docker image ls --all | docker image ls --all | ||
docker pull mysql/ | docker pull mysql/ | ||
+ | docker rmi image: | ||
+ | | ||
**Forcefully delete all images, so pay attention!!** | **Forcefully delete all images, so pay attention!!** | ||
+ | |||
docker rmi $(docker images -q) -f | docker rmi $(docker images -q) -f | ||
+ | |||
+ | Remove < | ||
+ | |||
+ | docker rmi $(docker images -f " | ||
| | ||
=== Save & Restore === | === Save & Restore === | ||
docker image save 915f54b28a31 -o ubuntu-16.04.tar | docker image save 915f54b28a31 -o ubuntu-16.04.tar | ||
- | docker | + | docker |
docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p" | docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p" | ||
===Build=== | ===Build=== | ||
+ | |||
docker build -t " | docker build -t " | ||
docker build - < Dockerfile | docker build - < Dockerfile | ||
Line 86: | Line 121: | ||
docker build -t ubuntu16-squid: | docker build -t ubuntu16-squid: | ||
docker build --build-arg http_proxy=http:// | docker build --build-arg http_proxy=http:// | ||
+ | docker build --no-cache -t tftp-alpine: | ||
+ | docker build -t php: | ||
===Deploy Container=== | ===Deploy Container=== | ||
Line 99: | Line 136: | ||
docker run --name=test-kibana -d rutsky/ | docker run --name=test-kibana -d rutsky/ | ||
docker run -p 8080:80 -p 8443:443 68b57f0b6302 apache2-foreground | docker run -p 8080:80 -p 8443:443 68b57f0b6302 apache2-foreground | ||
+ | docker run -dti -p 69:69/udp -v / | ||
+ | docker run -it --entrypoint /bin/bash container-ID | ||
+ | docker run --rm -tid -p 2080:80 -p 2443:443 haproxy-test: | ||
=== Run === | === Run === | ||
Line 108: | Line 148: | ||
docker run -ti mysql: | docker run -ti mysql: | ||
docker run -d -p 3306:3306 mysql: | docker run -d -p 3306:3306 mysql: | ||
- | |||
- | |||
=== Info === | === Info === | ||
Line 116: | Line 154: | ||
docker info | docker info | ||
docker logs mysql01 | docker logs mysql01 | ||
+ | docker logs --follow jenkins | ||
journalctl -fu docker | journalctl -fu docker | ||
docker ps | docker ps | ||
docker ps --all | docker ps --all | ||
docker inspect f8f1140788d8 | docker inspect f8f1140788d8 | ||
+ | |||
+ | ===Logs=== | ||
+ | |||
+ | docker inspect --format=' | ||
| | ||
=== Connect === | === Connect === | ||
Line 129: | Line 172: | ||
docker exec -it 4c1d592d40d9 mysql -uroot -p | docker exec -it 4c1d592d40d9 mysql -uroot -p | ||
docker exec -it 176bd91300c3 bash | docker exec -it 176bd91300c3 bash | ||
+ | docker exec -it $(echo $(docker ps | grep -i esphome | awk ' | ||
| | ||
=== Volumes === | === Volumes === | ||
+ | docker volume create --name DataVolume1 | ||
docker volume create --label DataVolume1 | docker volume create --label DataVolume1 | ||
docker volume create -d netapp --name myFirstVolume -opt size=1G | docker volume create -d netapp --name myFirstVolume -opt size=1G | ||
Line 168: | Line 213: | ||
sudo usermod -a -G docker USERNAME | sudo usermod -a -G docker USERNAME | ||
+ | usermod -aG docker tmade | ||
====Dockerfile==== | ====Dockerfile==== | ||
Line 178: | Line 224: | ||
<code txt Dockerfile> | <code txt Dockerfile> | ||
- | #Download base image ubuntu | + | #Download base image ubuntu |
- | FROM ubuntu: | + | FROM ubuntu:22.04 |
- | LABEL version=" | + | #FROM ubuntu:16.04 |
- | LABEL maintainer=" | + | #FROM ubuntu:18.04 |
+ | LABEL version=" | ||
+ | LABEL maintainer=" | ||
- | ENV SQUID_VERSION=" | + | ENV SQUID_VERSION=" |
- | ENV SQUIDURL=" | + | ENV MAIN_VERSION=" |
- | #ENV https_proxy "http://my-proxy: | + | ENV SQUIDURL=" |
- | #ENV http_proxy "http://my-proxy: | + | |
- | #ENV no_proxy " | + | #http://www.squid-cache.org/ |
+ | #http://www.squid-cache.org/ | ||
# locales to UTF-8 | # locales to UTF-8 | ||
Line 193: | Line 242: | ||
#ENV LC_ALL C.UTF-8 | #ENV LC_ALL C.UTF-8 | ||
#ENV SQUID_VERSION=3.5.12-1ubuntu7 | #ENV SQUID_VERSION=3.5.12-1ubuntu7 | ||
- | # | ||
- | # | ||
- | # | ||
- | RUN apt-get update | + | RUN apt-get update |
- | RUN apt-get -y upgrade | + | apt-get -y upgrade |
- | #RUN apt-get -y dist-upgrade | + | apt-get -y install bash-completion \ |
- | #RUN DEBIAN_FRONTEND=noninteractive | + | build-essential |
- | RUN apt-get install -y build-essential | + | |
- | RUN apt-get install -y net-tools | + | wget \ |
- | RUN apt-get install -y wget | + | curl \ |
- | RUN apt-get install -y libssl-dev | + | |
- | RUN apt-get install -y telnet | + | vim \ |
- | RUN apt-get install -y vim | + | iputils-ping \ |
- | RUN apt-get -qy autoremove | + | net-tools && \ |
- | #RUN rm -rf / | + | apt-get -qy autoremove |
+ | rm -rf / | ||
- | #WORKDIR /data/ | ||
RUN wget ${SQUIDURL} | RUN wget ${SQUIDURL} | ||
RUN tar -xzf squid-${SQUID_VERSION}.tar.gz | RUN tar -xzf squid-${SQUID_VERSION}.tar.gz | ||
- | RUN cd / | + | |
+ | RUN cd / | ||
+ | --disable-ipv6 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
RUN cd / | RUN cd / | ||
- | RUN useradd -r squid -s / | + | |
- | RUN cat /etc/passwd | + | RUN useradd -r squid -s / |
+ | cat / | ||
#RUN groupadd -r squid | #RUN groupadd -r squid | ||
- | RUN touch / | + | |
- | RUN cd / | + | cd / |
- | RUN chmod 640 / | + | chmod 660 / |
- | #COPY entrypoint.sh / | + | COPY squid-no-cache.conf / |
- | #RUN chmod 750 / | + | #COPY entrypoint.sh /usr/bin/entrypoint.sh |
- | + | ||
- | COPY squid-init / | + | |
- | RUN chmod 750 / | + | |
- | COPY squid.conf / | + | |
- | #CMD "./entrypoint.sh" | + | |
- | #ENTRYPOINT ["/usr/local/squid/ | + | |
- | #CMD [" | + | |
- | ENTRYPOINT / | + | |
- | #CMD [" | + | |
+ | WORKDIR /etc/squid | ||
+ | USER squid | ||
#ENTRYPOINT "/ | #ENTRYPOINT "/ | ||
- | |||
#EXPOSE 8080/tcp | #EXPOSE 8080/tcp | ||
- | #CMD ["/ | ||
- | #ENTRYPOINT ["/ | ||
- | #CMD ["/ | ||
- | #CMD ["/ | ||
- | #CMD [" | ||
- | #CMD [" | ||
- | #CMD ["/ | ||
- | #example ENTRYPOINT service nginx start && service ssh start && /bin/bash "use && to separate your code" | ||
#ENTRYPOINT ["/ | #ENTRYPOINT ["/ | ||
+ | </ | ||
+ | |||
+ | Squid entrypoint.sh: | ||
+ | <code text entrypoint.sh> | ||
+ | #!/bin/sh | ||
+ | |||
+ | echo "start squid-proxy" | ||
+ | / | ||
+ | |||
</ | </ | ||
Line 258: | Line 305: | ||
LABEL version=" | LABEL version=" | ||
- | LABEL maintainer=" | + | LABEL maintainer=" |
#ENV http_proxy " | #ENV http_proxy " | ||
Line 340: | Line 387: | ||
==== Proxy ==== | ==== Proxy ==== | ||
- | Files (SLES12 and Ubuntu 16.04/ 18.04): | + | Files (SLES12 and Ubuntu 16.04/ 18.04/ 20.04/ 22.04): |
/ | / | ||
Line 391: | Line 438: | ||
===Install=== | ===Install=== | ||
- | Check releases: | + | apt-get install docker-compose |
+ | |||
+ | Or check releases | ||
https:// | https:// | ||
Line 398: | Line 447: | ||
curl -L https:// | curl -L https:// | ||
chmod +x / | chmod +x / | ||
- | or | ||
- | apt-get install docker-compose | ||
| | ||
===Commands=== | ===Commands=== | ||
| | ||
- | docker-compose up # | + | docker-compose up # |
- | docker-compose -f docker-compose.yml -f docker-compose.dev.yml up | + | docker-compose up -d #to run your services in the background (still runs after system reboot) |
- | docker-compose -f / | + | docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d #to run your services in the background (" |
- | docker-compose -f / | + | docker-compose -f / |
- | | + | docker-compose -f docker-compose.yml up -d |
docker-compose down | docker-compose down | ||
docker-compose ps | docker-compose ps | ||
Line 428: | Line 476: | ||
volumes: | volumes: | ||
- / | - / | ||
+ | restart: always | ||
</ | </ | ||
Line 487: | Line 536: | ||
</ | </ | ||
- | ===Service Unit=== | + | Jenkins: |
- | + | ||
- | " | + | |
< | < | ||
- | # / | + | version: ' |
- | [Unit] | + | services: |
- | Description=Docker Compose Application Service | + | |
- | Requires=docker.service | + | |
- | After=docker.service | + | user: " |
+ | #user: " | ||
+ | container_name: | ||
+ | ports: | ||
+ | - 8888:8080 | ||
+ | - 50000: | ||
+ | volumes: | ||
+ | - / | ||
+ | restart: always | ||
+ | </ | ||
- | [Service] | + | tftp: |
- | Type=oneshot | + | |
- | RemainAfterExit=yes | + | |
- | WorkingDirectory=/ | + | |
- | ExecStart=/ | + | |
- | ExecStop=/ | + | |
- | TimeoutStartSec=0 | + | |
- | [Install] | + | < |
- | WantedBy=multi-user.target | + | version: ' |
+ | |||
+ | services: | ||
+ | tftp: | ||
+ | image: tftp-alpine: | ||
+ | #user: " | ||
+ | #user: " | ||
+ | container_name: | ||
+ | ports: | ||
+ | - " | ||
+ | #- 69:69/udp | ||
+ | volumes: | ||
+ | - / | ||
+ | restart: always | ||
</ | </ | ||
- | Some container auto start: | + | ====Private Registry==== |
+ | https:// | ||
- | < | + | mkdir -p /var/ |
- | [Unit] | + | mkdir -p /var/lib/docker/ |
- | # | + | mkdir -p /var/lib/docker/ |
- | Description=ubuntu01 | + | |
- | Requires=docker.service | + | |
- | After=docker.service | + | |
- | [Service] | + | docker run --entrypoint htpasswd registry:2 -Bbn admin mysecret >> |
- | Restart=always | + | |
- | ExecStart=/usr/bin/ | + | docker container rm $(docker ps |grep registry |awk '{ print $1 }') |
- | ExecStop=/usr/bin/ | + | |
- | [Install] | + | "/ |
- | WantedBy=multi-user.target | + | < |
+ | registry: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
</ | </ | ||
+ | Start and stop: | ||
+ | docker-compose -f / | ||
+ | docker-compose -f / | ||
+ | | ||
+ | Login: | ||
+ | |||
+ | docker login --username admin my-registry: | ||
+ | |||
+ | ====MISC==== | ||
+ | |||
+ | sudo usermod -aG docker myuser | ||