Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dockerode
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chalermpong
dockerode
Commits
92821338
Commit
92821338
authored
Mar 28, 2024
by
root
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update README
parent
ad361eae
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
239 additions
and
36 deletions
+239
-36
README.md
+233
-1
dockerode.js
+6
-35
No files found.
README.md
View file @
92821338
...
...
@@ -20,7 +20,16 @@ _____________________
|
[
docker compose
](
#วิธีใช้-docker-compose-โดยใช้-dockerode
)
| ✔ | ทำการ compose file
|
[
docker inspect
](
#วิธีเช็คข้อมูล-container-ใน-dockerode
)
| ✔ | เช็คข้อมูล container
|
[
docker exec
](
#วิธ๊เช็คข้อมูลใน-container-exec-โดยใช้-dockerode
)
| ✔ | เช็คข้อมูลภายใน container
| docker cp | ✖ |
|
[
docker network create
](
#กำหนด-network-โดยใช้-dockerode
)
| ✔ | สร้าง network
|
[
docker network ls
](
#แสดง-network-ทั้งหมด
)
| ✔ | แสดง network ทั้งหมด
|
[
docker network rm
](
#ลบ-network
)
| ✔ | ลบ network
|
[
docker network connect
](
#กำหนดการเชื่อมต่อ-network-กับ-container
)
| ✔ | เชื่อต่อ network กับ container
|
[
docker network disconnect
](
#ตัดการเชื่อมต่อ-network-กับ-container
)
| ✔ | ตัดเชื่อต่อ network กับ container
|
[
docker volume create
](
#วิธีสร้าง-volume
)
| ✔ | สร้าง volume
|
[
docker volume ls
](
#วิธีแสดง-volume
)
| ✔ | แสดง volume
|
[
docker volume rm
](
#วิธีลบ-volume
)
| ✔ | ลบ volume
|
[
docker container update
](
#กำหนด-env-โดยใช้-dockerode
)
| ✔ | กำหนด แก้ไข ลบ ข้อมูล environment
| docker cp | ✖ | copy ไฟล์จาก local ไปยัง container
### วิธีเรียกใช้ Dockerode
...
...
@@ -479,6 +488,88 @@ docker.createNetwork(options, (err, network) => {
```
docker use network
#### ลบ network
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const networkId = 'your_network_id'; // ระบุ ID ของเน็ตเวิร์กที่ต้องการลบ
const network = docker.getNetwork(networkId);
network.remove((err) => {
if (err) {
console.error('Error removing network:', err);
return;
}
console.log('Network removed successfully');
});
```
#### แสดง Network ทั้งหมด
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
docker.listNetworks((err, networks) => {
if (err) {
console.error('Error listing networks:', err);
return;
}
console.log('Networks:');
networks.forEach(network => {
console.log(
` Name: ${network.Name}`
);
console.log(
` ID: ${network.Id}`
);
console.log(
` Driver: ${network.Driver}`
);
console.log(
` Scope: ${network.Scope}`
);
console.log();
});
});
```
#### กำหนดการเชื่อมต่อ network กับ container
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const containerId = 'your_container_id'; // ระบุ ID ของ container ที่ต้องการเชื่อมต่อกับ network
const networkId = 'your_network_id'; // ระบุ ID ของ network ที่ต้องการเชื่อมต่อ
const container = docker.getContainer(containerId);
container.connect({ NetworkID: networkId }, (err) => {
if (err) {
console.error('Error connecting container to network:', err);
return;
}
console.log('Container connected to network successfully');
});
```
#### ตัดการเชื่อมต่อ network กับ container
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const containerId = 'your_container_id'; // ระบุ ID ของ container ที่ต้องการตัดการเชื่อมต่อจาก network
const networkId = 'your_network_id'; // ระบุ ID ของ network ที่ต้องการตัดการเชื่อมต่อ
const container = docker.getContainer(containerId);
container.disconnect({ NetworkID: networkId }, (err) => {
if (err) {
console.error('Error disconnecting container from network:', err);
return;
}
console.log('Container disconnected from network successfully');
});
```
#### กำหนด Blind mount ใน Container
...
...
@@ -537,8 +628,79 @@ docker.createContainer(options, (err, container) => {
});
}
});
```
#### Update ข้อมูล env ใน Conatainer
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const containerId = 'your_container_id'; // ระบุ ID ของ container ที่ต้องการอัปเดตตัวแปรสภาพแวดล้อม
const envKey = 'YOUR_ENV_KEY'; // ระบุ key ของตัวแปรสภาพแวดล้อมที่ต้องการอัปเดต
const envValue = 'new_value'; // ระบุค่าใหม่ของตัวแปรสภาพแวดล้อม
const container = docker.getContainer(containerId);
// ดึงข้อมูล configuration ปัจจุบันของ container
container.inspect((err, data) => {
if (err) {
console.error('Error inspecting container:', err);
return;
}
// ดึงตัวแปรสภาพแวดล้อมปัจจุบัน
let env = data.Config.Env ||
[
];
// ลบตัวแปรสภาพแวดล้อมที่ต้องการอัปเดต (หากมีอยู่)
env = env.filter(item => !item.startsWith(
`${envKey}=`
));
// เพิ่มตัวแปรสภาพแวดล้อมที่อัปเดตเข้าไปใหม่
env.push(
`${envKey}=${envValue}`
);
// อัปเดต container ด้วยข้อมูล configuration ใหม่ (รวมถึงตัวแปรสภาพแวดล้อม)
container.update({
Env: env
}, (err) => {
if (err) {
console.error('Error updating container:', err);
return;
}
console.log(
`Environment variable ${envKey} updated successfully`
);
});
});
```
#### ลบ env ใน Container
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const containerId = 'your_container_id'; // ระบุ ID ของ container ที่ต้องการลบ environment variables
const envKey = 'YOUR_ENV_KEY'; // ระบุ key ของ environment variable ที่ต้องการลบ
const container = docker.getContainer(containerId);
container.inspect((err, data) => {
if (err) {
console.error('Error inspecting container:', err);
return;
}
const env = data.Config.Env ||
[
];
const newEnv = env.filter(item => !item.startsWith(
`${envKey}=`
)); // ลบ environment variable ที่ต้องการ
container.update({
Env: newEnv
}, (err) => {
if (err) {
console.error('Error updating container:', err);
return;
}
console.log(
`Environment variable ${envKey} removed successfully`
);
});
});
```
#### วิธ๊เช็คข้อมูลใน Container Exec โดยใช้ Dockerode
```
javascript
...
...
@@ -579,6 +741,76 @@ docker.getContainer(containerId).exec({
});
});
```
### วิธีสร้าง Volume
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const volumeName = 'my_volume'; // ชื่อของ volume ที่ต้องการสร้าง
docker.createVolume({ Name: volumeName }, (err, volumeInfo) => {
if (err) {
console.error('Error creating volume:', err);
return;
}
console.log('Volume created successfully:', volumeInfo);
});
```
#### วิธีแสดง Volume
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
docker.modem.dial({ path: '/volumes', method: 'GET', options: {} }, (err, data) => {
if (err) {
console.error('Error listing volumes:', err);
return;
}
const volumes = JSON.parse(data.toString()).Volumes;
console.log('Volumes:', volumes);
});
```
โดยสามารถการกรองข้อมูลการแสดงได้ ดังนี้
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
docker.listVolumes((err, volumes) => {
if (err) {
console.error('Error listing volumes:', err);
return;
}
const volumeNames = volumes.Volumes.map(volume => volume.Name);
console.log('Volume Names:', volumeNames);
});
```
#### วิธีลบ Volume
```
javascript
const Docker = require('dockerode');
const docker = new Docker();
const volumeName = 'my_volume'; // ระบุชื่อของ volume ที่ต้องการลบ
docker.getVolume(volumeName).remove((err) => {
if (err) {
console.error('Error removing volume:', err);
return;
}
console.log('Volume removed successfully');
});
```
...
...
dockerode.js
View file @
92821338
const
Docker
=
require
(
'dockerode'
);
const
fs
=
require
(
'fs'
);
var
docker
=
new
Docker
({
socketPath
:
'/var/run/docker.sock'
});
const
docker
=
new
Docker
();
const
volumeName
=
'my_volume'
;
// ระบุชื่อของ volume ที่ต้องการลบ
const
containerId
=
'flowstack-flowengine-1'
;
// ระบุ ID หรือชื่อของ container ที่ต้องการ copy ไฟล์เข้าไป
const
srcPath
=
'/home/bakukan2008/dockerode/README.md'
;
// ระบุพาธของไฟล์ที่ต้องการ copy จาก local เครื่อง
const
destPath
=
'/run'
;
// ระบุพาธของไฟล์ใน container ที่ต้องการ copy เข้าไป
docker
.
getContainer
(
containerId
).
exec
({
AttachStdout
:
true
,
AttachStderr
:
true
,
Tty
:
false
,
Cmd
:
[
'ls'
,
'-l'
,
'/'
],
// ระบุคำสั่งที่ต้องการ execute ใน container
},
(
err
,
exec
)
=>
{
docker
.
getVolume
(
volumeName
).
remove
((
err
)
=>
{
if
(
err
)
{
console
.
error
(
'Error
creating exec instanc
e:'
,
err
);
console
.
error
(
'Error
removing volum
e:'
,
err
);
return
;
}
exec
.
start
((
err
,
stream
)
=>
{
if
(
err
)
{
console
.
error
(
'Error starting exec instance:'
,
err
);
return
;
}
stream
.
on
(
'data'
,
(
chunk
)
=>
{
console
.
log
(
'Output:'
,
chunk
.
toString
());
});
stream
.
on
(
'end'
,
()
=>
{
console
.
log
(
'Execution complete.'
);
});
stream
.
on
(
'error'
,
(
err
)
=>
{
console
.
error
(
'Error executing command:'
,
err
);
});
});
});
\ No newline at end of file
console
.
log
(
'Volume removed successfully'
);
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment