Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:docker [2022/06/29 12:45] – [Miscellaneous] darron | tools:docker [2022/07/17 16:11] (current) – [Resources] darron | ||
---|---|---|---|
Line 3: | Line 3: | ||
Docker is similar to [[: | Docker is similar to [[: | ||
application within its jailed system rather than being a lightweight | application within its jailed system rather than being a lightweight | ||
- | VM. It's like having a chroot management system enhanced with networking. | + | VM. It's like having a chroot management system enhanced with networking. One side |
+ | effect of not having an init process is zombie processes can accumulate in the container. Docker is also dependant on the overlay2 file system which is relatively slow. | ||
Docker has a lot of pre-built applications, | Docker has a lot of pre-built applications, | ||
Line 231: | Line 232: | ||
</ | </ | ||
- | ===WordPress=== | + | ===WordPress |
+ | |||
+ | This is the process I used to develop a WordPress docker container. Following this is | ||
+ | the method using a Dockerfile which automates the process once it is known. Some differences | ||
+ | are also found in the application of the container during development. | ||
==Proxy== | ==Proxy== | ||
Line 265: | Line 270: | ||
apk update | apk update | ||
apk upgrade | apk upgrade | ||
- | apk add php8 php8-apache2 php8-mysqli php8-mysqlnd php8-opcache php8-cli php8-ctype php8-iconv php8-session php8-simplexml php8-tokenizer php8-openssl php8-phar php8-curl php8-dom php8-exif php8-fileinfo php8-pecl-imagick php8-mbstring php8-zip php8-gb php-intl | + | apk add php8 php8-apache2 php8-mysqli php8-mysqlnd php8-opcache php8-cli php8-ctype php8-iconv php8-session php8-simplexml php8-tokenizer php8-openssl php8-phar php8-curl php8-dom php8-exif php8-fileinfo php8-pecl-imagick php8-mbstring php8-zip php8-gd php-intl |
ln -sf / | ln -sf / | ||
exit | exit | ||
Line 328: | Line 333: | ||
< | < | ||
docker exec -it alpine_linux sh | docker exec -it alpine_linux sh | ||
- | cd / | + | cd / |
- | wget " | + | wget " |
unzip latest.zip | unzip latest.zip | ||
- | chown -R apache: | + | rm latest.zip |
+ | chown -R apache: | ||
exit | exit | ||
</ | </ | ||
Line 351: | Line 357: | ||
define(' | define(' | ||
+ | </ | ||
+ | |||
+ | ===WordPress Dockerfile=== | ||
+ | |||
+ | A docker file can be used to automate the building of an image after one | ||
+ | has been developed. | ||
+ | |||
+ | Here is a simple Makefile just used to contain various rules. | ||
+ | |||
+ | < | ||
+ | clean: | ||
+ | rm -f *~ | ||
+ | |||
+ | build: | ||
+ | docker build --no-cache -t alpine_wp . | ||
+ | |||
+ | run: | ||
+ | docker run -d -t --net vlan --ip 10.44.0.11 --name wp-dev alpine_wp | ||
+ | |||
+ | test: | ||
+ | curl -v http:// | ||
+ | |||
+ | stop: | ||
+ | docker stop wp-dev | ||
+ | |||
+ | rm: | ||
+ | docker rm -f wp-dev | ||
+ | docker image rm -f alpine_wp | ||
+ | </ | ||
+ | |||
+ | The Makefile uses a Dockerfile to make the build, as follows: | ||
+ | |||
+ | < | ||
+ | # LATEST WORDPRESS ON ALPINE LINUX | ||
+ | FROM alpine: | ||
+ | # INSTALL APACHE2/ | ||
+ | RUN apk --no-cache update && apk --no-cache upgrade && apk --no-cache add php8 php8-apache2 php8-mysqli php8-mysqlnd php8-opcache php8-cli php8-ctype php8-iconv php8-session php8-simplexml php8-tokenizer php8-openssl php8-phar php8-curl php8-dom php8-exif php8-fileinfo php8-pecl-imagick php8-mbstring php8-zip php8-gd php-intl && ln -sf / | ||
+ | # INSTALL WORDPRESS | ||
+ | WORKDIR / | ||
+ | RUN wget -q " | ||
+ | # START HTTPD | ||
+ | EXPOSE 80 | ||
+ | ENTRYPOINT / | ||
</ | </ | ||
Line 422: | Line 471: | ||
==Clone== | ==Clone== | ||
- | First stop the container to commit any changes. | + | __First |
+ | |||
+ | The commit creates a tagged version of the container which | ||
+ | has any changes | ||
< | < | ||
+ | docker stop alpine_lunux | ||
docker commit alpine_linux wordpress: | docker commit alpine_linux wordpress: | ||
</ | </ | ||
- | Container | + | __Container |
- | Save the docker | + | < |
+ | docker start alpine_linux | ||
+ | </ | ||
+ | |||
+ | __Save | ||
+ | |||
+ | This saves the container at the specified commit tag for import | ||
+ | elsewhere. | ||
< | < | ||
Line 436: | Line 496: | ||
</ | </ | ||
- | Container | + | Container |
===Resources=== | ===Resources=== | ||
[[https:// | [[https:// | ||
+ | |||
+ | [[https:// | ||