- Inbound adapters: handle requests from the outside by invoking the business logic
- Outbound adapters: invoked by the business logic and invoke external applications
- Port: defines a set of operations and is how the business logic interacts with what’s outside of it
- inbound port: an API exposed by the business logic, which enables it to be invoked by external applications. Ex. service interface / service public method
- outbound port: how the business logic invokes external systems. ex. repository interface, which defines a collection of data access operations
Microservice Patterns - Hexagonal architecture
Docker - force delete all containers or images
- Force rm containers: docker container rm ${docker container ls -aq} -f
# Here is container
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1b65461eefd nginx "nginx -g 'daemon of…" 4 days ago Up 4 days 0.0.0.0:1234->80/tcp webwww
# container ls -aq can show container id
isaac@isaac-KVM:~$ docker container ls -aq
c1b65461eefd
# Force remove container by query container id
isaac@isaac-KVM:~$ docker container rm $(docker container ls -aq) -f
c1b65461eefd
# Confirmed container doesn't exist
isaac@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
isaac@isaac-KVM:~$
- Force rm images
# There are images
isaac@isaac-KVM:~$ docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 719cd2e3ed04 2 months ago 109MB
ubuntu latest 7698f282e524 3 months ago 69.9MB
# List image ids
isaac@isaac-KVM:~$ docker image ls -aq
719cd2e3ed04
7698f282e524
# Force remove all images
isaac@isaac-KVM:~$ docker image rm $(docker image ls -aq) -f
Untagged: nginx:latest
Untagged: nginx@sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a
Deleted: sha256:719cd2e3ed04781b11ed372ec8d712fac66d5b60a6fb6190bf76b7d18cb50105
Deleted: sha256:e9b6506fb887de50972aefd99d7c5eb56b1a8e757ed953cdfecb86b5359bcb22
Deleted: sha256:55d9d9692a9615a28d183a42bc3881a72a39393feba3664e669e7affb78daa76
Deleted: sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5
Deleted: sha256:7698f282e5242af2b9d2291458d4e425c75b25b0008c1e058d66b717b4c06fa9
Deleted: sha256:027b23fdf3957673017df55aa29d754121aee8a7ed5cc2898856f898e9220d2c
Deleted: sha256:0dfbdc7dee936a74958b05bc62776d5310abb129cfde4302b7bcdf0392561496
Deleted: sha256:02571d034293cb241c078d7ecbf7a84b83a5df2508f11a91de26ec38eb6122f1
# Confirm all images don't exist
isaac@isaac-KVM:~$ docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
isaac@isaac-KVM:~$
Docker - Inspect image: understand the default command of an image
- Inspect an image can understand what command will be executed by default
docker image inspect ubuntu
[
{
"Id": "sha256:a2a15febcdf362f6115e801d37b5e60d6faaeedcb9896155e5fe9d754025be12",
"RepoTags": [
"ubuntu:latest"
],
"RepoDigests": [
"ubuntu@sha256:d1d454df0f579c6be4d8161d227462d69e163a8ff9d20a847533989cf0c94d90"
],
"Parent": "",
"Comment": "",
"Created": "2019-08-15T07:28:14.830150536Z",
"Container": "41b694b9b42f9c5ef7fb40c24272927a727a6d6cb8120bb3eae5849ceb9bee77",
"ContainerConfig": {
"Hostname": "41b694b9b42f",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/bin/bash\"]"
],
"ArgsEscaped": true,
"Image": "sha256:bcbe079849fdbb50b3eb04798547e046bdbc82020b8b780d767cf29f7e60b396",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"DockerVersion": "18.06.1-ce",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"ArgsEscaped": true,
"Image": "sha256:bcbe079849fdbb50b3eb04798547e046bdbc82020b8b780d767cf29f7e60b396",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 64185488,
"VirtualSize": 64185488,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/b6f45f91ad1f6356deb2c2ab3d04305cfcf0a5eedd3fed58e7059f901fbf6c4d/diff:/var/lib/docker/overlay2/dd6b618cd5cb79f5e029942234a1aeadead024082bade5bd2321e77eb504d6f1/diff:/var/lib/docker/overlay2/0fec4af91d36748a2b39c11fcd7f73bc015144ea28c7ff4234948d97e5d839b2/diff",
"MergedDir": "/var/lib/docker/overlay2/462cef4adf522157e3ca7b7a86af6341f141c21da54e30234c2a35264a01dae4/merged",
"UpperDir": "/var/lib/docker/overlay2/462cef4adf522157e3ca7b7a86af6341f141c21da54e30234c2a35264a01dae4/diff",
"WorkDir": "/var/lib/docker/overlay2/462cef4adf522157e3ca7b7a86af6341f141c21da54e30234c2a35264a01dae4/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:6cebf3abed5fac58d2e792ce8461454e92c245d5312c42118f02e231a73b317f",
"sha256:f7eae43028b334123c3a1d778f7bdf9783bbe651c8b15371df0120fd13ec35c5",
"sha256:7beb13bce073c21c9ee608acb13c7e851845245dc76ce81b418fdf580c45076b",
"sha256:122be11ab4a29e554786b4a1ec4764dd55656b59d6228a0a3de78eaf5c1f226c"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
Liaos-MBP:scg-control liaoisaac$
Docker - start nginx with port mapping
- Start container in background: run -d (for running in background) with port mapping
# Pull nginx
isaac@isaac-KVM:~$ docker pull nginx:latest
latest: Pulling from library/nginx
fc7181108d40: Pull complete
c4277fc40ec2: Pull complete
780053e98559: Pull complete
Digest: sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a
Status: Downloaded newer image for nginx:latest
isaac@isaac-KVM:~$
isaac@isaac-KVM:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 719cd2e3ed04 4 days ago 109MB
ubuntu latest 7698f282e524 4 weeks ago 69.9MB
# Start nginx, specify port mapping from 1234 to 80 in container
isaac@isaac-KVM:~$ docker container run -d --name webwww -p 0.0.0.0:1234:80 nginx
c1b65461eefde6a3e86509602982e2eeaf7616838efa369d5504b2c9c412f8db
# List container, confirmed port mapping
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1b65461eefd nginx "nginx -g 'daemon of…" 9 hours ago Up 9 hours 0.0.0.0:1234->80/tcp webwww
# Test 80 port is unreachable
isaac@isaac-KVM:~$ curl http://10.206.84.167:80
curl: (7) Failed to connect to 10.206.84.167 port 80: Connection refused
# Test 1234 port is available
isaac@isaac-KVM:~$ curl http://10.206.84.167:1234
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Docker - container - restart policy
Policies:
- always
- unless-stopped
- on-failure
Always
- Always restart
- Unless use command to stop it
- Restart when docker restart, even it has been stopped by command
Ex. docker container run -it {name} --restart always
Ex. After exit the shell, container will stop because the only one process was killed. But it will be restarted right away.
# Run container
Liaos-MBP:scg-control liaoisaac$ docker container run -it ubuntu /bin/bash
# There is only one process -> /bin/bash
root@1888da48ff01:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.3 0.1 18504 3352 pts/0 Ss 05:03 0:00 /bin/bash
root 11 0.0 0.1 34396 2912 pts/0 R+ 05:03 0:00 ps aux
root@1888da48ff01:/# exit
exit
# Once exit, container will be stopped because there is only one process in container
Liaos-MBP:scg-control liaoisaac$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Liaos-MBP:scg-control liaoisaac$
# Specify --restart always after “run"
Liaos-MBP:scg-control liaoisaac$ docker container run --restart always -it ubuntu /bin/bash
root@912e47da3142:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.5 0.1 18504 3444 pts/0 Ss 05:11 0:00 /bin/bash
root 10 0.0 0.1 34396 2808 pts/0 R+ 05:12 0:00 ps aux
root@912e47da3142:/# exit
exit
# Once exit, container will be restarted right away
Liaos-MBP:scg-control liaoisaac$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
912e47da3142 ubuntu "/bin/bash" 17 seconds ago Up 2 seconds hungry_khorana
Liaos-MBP:scg-control liaoisaac$
Liaos-MBP:scg-control liaoisaac$ docker stop 912e47da3142
912e47da3142
Liaos-MBP:scg-control liaoisaac$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# After restart docker in Mac, applications will be restarted
Liaos-MBP:scg-control liaoisaac$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
912e47da3142 ubuntu "/bin/bash" 2 days ago Up 13 seconds hungry_khoran
# After docker restart, container will be restarted again
# Following is ubuntu example
isaac@isaac-KVM:~$ service docker restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'docker.service'.
Authenticating as: isaac,,, (isaac)
Password:
==== AUTHENTICATION COMPLETE ===
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4403fafa5bb ubuntu "/bin/bash" 3 minutes ago Up 5 seconds optimistic_leh mann
unless-stopped
- Always restart unless it is stopped by command
- Wont restart when daemon restart
- Ex. — restart unless-stopped
# Start bash with unless-stopped
isaac@isaac-KVM:~$ docker container run --restart unless-stopped -it ubuntu /bin/bash
root@3be8ac8498a7:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 4.8 0.0 18504 3536 pts/0 Ss 17:53 0:00 /bin/bash
root 10 0.0 0.0 34396 2936 pts/0 R+ 17:53 0:00 ps aux
root@3be8ac8498a7:/# exit
exit
# Kill the only one process, container stopped and restart automatically because restart policy is unless-stopped
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3be8ac8498a7 ubuntu "/bin/bash" 19 seconds ago Up 7 seconds nostalgic_gagarin
# Use command to stop a container
isaac@isaac-KVM:~$ docker container stop 3be8ac8498a7
3be8ac8498a7
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# Container is not started after docker restart because restart policy is unless-stopped
isaac@isaac-KVM:~$ sudo service docker restart
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
isaac@isaac-KVM:~$
on-failure
- Restart container when it's stopped with non-zero exit code
- Restart container when docker restart
Docker - container - start and stop container
- Run a container
- Ex. docker container run <image> <app>
- Ex. docker container run -it ubuntu /bin/bash
- -it will connect to current terminal
- Stop container: docker container stop
- Start container: docker container start
# Originally there are 8 containers
isaac@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71c2bac3e63f ubuntu "/bin/bash" 2 minutes ago Exited (127) 30 seconds ago dreamy_neumann
5a6744d26f4d ubuntu "/bin/sh" 3 minutes ago Exited (0) 2 minutes ago nostalgic_swanson
0f0ddaa9c4f4 nginx "nginx -g 'daemon of…" 3 minutes ago Exited (0) 3 minutes ago cranky_turing
5a8dfb31e1b5 nginx "nginx -g 'daemon of…" 4 minutes ago Exited (0) 4 minutes ago quirky_newton
20a69a2f40b0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago sharp_zhukovsky
28a62f8da2d0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago affectionate_curran
4df4b2d4c69e ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago gracious_jones
81977c50304b ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago cocky_poincare
isaac@isaac-KVM:~$
# Start new container
isaac@isaac-KVM:~$ docker container run -it ubuntu /bin/bash
root@1bbcd62b047b:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@1bbcd62b047b:/# exit
exit
# Now there are 9 containers
isaac@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bbcd62b047b ubuntu "/bin/bash" 9 seconds ago Exited (0) 4 seconds ago blissful_turing
71c2bac3e63f ubuntu "/bin/bash" 2 minutes ago Exited (127) About a minute ago dreamy_neumann
5a6744d26f4d ubuntu "/bin/sh" 3 minutes ago Exited (0) 3 minutes ago nostalgic_swanson
0f0ddaa9c4f4 nginx "nginx -g 'daemon of…" 4 minutes ago Exited (0) 4 minutes ago cranky_turing
5a8dfb31e1b5 nginx "nginx -g 'daemon of…" 5 minutes ago Exited (0) 5 minutes ago quirky_newton
20a69a2f40b0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago sharp_zhukovsky
28a62f8da2d0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago affectionate_curran
4df4b2d4c69e ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago gracious_jones
81977c50304b ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago cocky_poincare
# No container alive, because the latest process was killed by exit
isaac@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
isaac@isaac-KVM:~$
- Del container: docker container rm
isaac@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bbcd62b047b ubuntu "/bin/bash" 11 minutes ago Exited (0) 11 minutes ago blissful_turing
71c2bac3e63f ubuntu "/bin/bash" 14 minutes ago Exited (127) 12 minutes ago dreamy_neumann
5a6744d26f4d ubuntu "/bin/sh" 15 minutes ago Exited (0) 15 minutes ago nostalgic_swanson
0f0ddaa9c4f4 nginx "nginx -g 'daemon of…" 15 minutes ago Exited (0) 15 minutes ago cranky_turing
5a8dfb31e1b5 nginx "nginx -g 'daemon of…" 17 minutes ago Exited (0) 16 minutes ago quirky_newton
20a69a2f40b0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago sharp_zhukovsky
28a62f8da2d0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago affectionate_curran
4df4b2d4c69e ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago gracious_jones
81977c50304b ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago cocky_poincare
isaac@isaac-KVM:~$ docker container rm 81977c50304b
81977c50304b
isaac@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1bbcd62b047b ubuntu "/bin/bash" 12 minutes ago Exited (0) 11 minutes ago blissful_turing
71c2bac3e63f ubuntu "/bin/bash" 14 minutes ago Exited (127) 13 minutes ago dreamy_neumann
5a6744d26f4d ubuntu "/bin/sh" 15 minutes ago Exited (0) 15 minutes ago nostalgic_swanson
0f0ddaa9c4f4 nginx "nginx -g 'daemon of…" 16 minutes ago Exited (0) 15 minutes ago cranky_turing
5a8dfb31e1b5 nginx "nginx -g 'daemon of…" 17 minutes ago Exited (0) 17 minutes ago quirky_newton
20a69a2f40b0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago sharp_zhukovsky
28a62f8da2d0 ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago affectionate_curran
4df4b2d4c69e ubuntu:latest "/bin/bash" 2 months ago Exited (0) 2 months ago gracious_jones
isaac@isaac-KVM:~$
- Kill the only one process in container also kill the container
- Ctrl - PQ: exit container without terminating it
- Ex. Reattach to container terminal docker container exec -it {containerid} bash
- After reattach terminal and execute ps command, will see 2 processes. Because docker container exec command create new one, means exit this time will not kill container
# There is no container
dockeruser@isaac-KVM:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# After run, one bash process in container
dockeruser@isaac-KVM:~$ docker container run -it ubuntu /bin/bash
root@1653d3c07542:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 6.2 0.0 18504 3452 pts/0 Ss 17:33 0:00 /bin/bash
root 11 0.0 0.0 34396 2856 pts/0 R+ 17:33 0:00 ps aux
# Ctrl + PQ to exit terminal
root@1653d3c07542:/# dockeruser@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1653d3c07542 ubuntu "/bin/bash" 28 seconds ago Up 27 seconds flamboyant_ganguly
# Reattach container
dockeruser@isaac-KVM:~$ docker container exec -it 1653d3c07542 bash
# Find there are 2 processes
root@1653d3c07542:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.2 0.0 18504 3452 pts/0 Ss+ 17:33 0:00 /bin/bash
root 12 5.5 0.0 18504 3428 pts/1 Ss 17:34 0:00 bash
root 21 0.0 0.0 34396 2868 pts/1 R+ 17:34 0:00 ps aux
# So container will not terminate because there are more than one process
root@1653d3c07542:/# exit
exit
dockeruser@isaac-KVM:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1653d3c07542 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes flamboyant_ganguly
dockeruser@isaac-KVM:~$
- Delete container
- 1. docker container stop {name}
- 2. docker container rm {name}
- Or: docker container rm {name} -f
- Ex. Check docker is running: docker version
isaac@isaac-KVM:~$ docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.4
Git commit: 2d0083d
Built: Wed Jul 3 12:13:54 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.09.7
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 2d0083d
Built: Mon Jul 1 19:14:14 2019
OS/Arch: linux/amd64
Experimental: false
- Need make sure username is in docker user group
- Add to usergroup if it is not: usermod -aG docker <user>
# add user
isaac@isaac-KVM:~$ sudo adduser dockeruser
[sudo] password for isaac:
Adding user `dockeruser' ...
Adding new group `dockeruser' (1001) ...
Adding new user `dockeruser' (1001) with group `dockeruser' ...
Creating home directory `/home/dockeruser' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for dockeruser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
isaac@isaac-KVM:~$
# change to dockeruser, but unable to execute docker version
isaac@isaac-KVM:~$ su - dockeruser
Password:
dockeruser@isaac-KVM:~$ docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.4
Git commit: 2d0083d
Built: Wed Jul 3 12:13:54 2019
OS/Arch: linux/amd64
Experimental: false
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version: dial unix /var/run/docker.sock: connect: permission denied
dockeruser@isaac-KVM:~$
# it's because not in docker group, so need add to docker group (Notice this action need to be did by sudouser)
dockeruser@isaac-KVM:~$ usermod -aG docker dockeruser
usermod: Permission denied.
usermod: cannot lock /etc/passwd; try again later.
dockeruser@isaac-KVM:~$ sudo usermod -aG docker dockeruser
[sudo] password for dockeruser:
dockeruser is not in the sudoers file. This incident will be reported.
dockeruser@isaac-KVM:~$ su - isaac
Password:
isaac@isaac-KVM:~$ usermod -aG docker dockeruser
usermod: Permission denied.
usermod: cannot lock /etc/passwd; try again later.
isaac@isaac-KVM:~$ sudo usermod -aG docker dockeruser
# after add to docker user group, dockeruser can use docker version
isaac@isaac-KVM:~$ su - dockeruser
Password:
dockeruser@isaac-KVM:~$ docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.4
Git commit: 2d0083d
Built: Wed Jul 3 12:13:54 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.09.7
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 2d0083d
Built: Mon Jul 1 19:14:14 2019
OS/Arch: linux/amd64
Experimental: false
dockeruser@isaac-KVM:~$
訂閱:
文章 (Atom)
Lessons Learned While Benchmarking vLLM with GPU
Recently, I benchmarked vLLM on a GPU to better understand how much throughput can realistically be expected in an LLM serving setup. One ...
-
spring.jpa.open-in-view spring boot 的 property, spring.jpa.open-in-view 預設是開啟的 開啟的話, OpenSessionInViewInterceptor 就會介入 收到 web request 的時候...
-
Introduction One day, Cassandra stop listening for thrift client until restart it manually. After checking Cassandra log, found it enco...
-
ChatGPT generated Java Class Loader 是 Java Runtime Environment 的一部分, 它動態地將 Java 類別加載到 Java Virtual Machine 中。通常,只有在需要時才會加載類別 。Java 運行時系統不需...