Docker 이미 생성된 컨테이너에 디텍토리 추가 연결하기

예:

서버폴더:/var/log/docker_httpd01

컨테이너 폴더:/var/log/apache2

1.우선 docker를 정지시킵니다.

[root@localhost /]# systemctl docker stop

2.root권한이 아닐때 root로 교체후 컨테이너 폴더로 이동합니다.

컨테이너id는 docker ps 명령으로 확인 가능합니다

[root@localhost /]# su root
Password: 
[root@localhost /]# docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES
71048e7e4288   wordpress:latest   "docker-entrypoint..."   8 weeks ago         Up 52 minutes   0.0.0.0:8000->80/tcp   wordpress_wordpress_1
[root@localhost /]# cd /var/lib/docker/containers/컨테이너ID+XXXXX/

3.hostconfig.json 과 config.v2.json 파일 편집

[root@localhost /]# vim hostconfig.json
{
  "Binds": [
    "/var/log/apache2:/var/log/docker_httpd01"
  ],
  "ContainerIDFile": "",
 ......
}

{“Binds”: 뒤에 [“/var/log/apache2:/var/log/docker_httpd01”] 추가

[root@localhost /]# vim config.v2.json
{
......
  "MountPoints": {
    "/var/log/apache2": {
      "Source": "/var/log/docker_httpd01",
      "Destination": "/var/log/apache2",
      "RW": true,
      "Name": "",
      "Driver": "",
      "Type": "bind",
      "Propagation": "rprivate",
      "Spec": {
        "Type": "bind",
        "Source": "/var/log/docker_httpd01",
        "Target": "/var/log/apache2"
      }
    },
    "/var/www/html": {
      "Source": "",
      "Destination": "/var/www/html",
      "RW": true,
      "Name": "a4b384782cc8c13fc9d400d46a09081dc3638080518eeb2bcd1cd1663c55881c",
      "Driver": "local",
      "Type": "volume",
      "ID": "056067ddd20ba46ebf7bcc93b3d13861210e091a889e720f0c52d4cf8e9b2437",
      "Spec": {
        "Type": "volume",
        "Target": "/var/www/html"
      }
    }
  },
  ......
}

MountPoints”:{ 를 찾아 아래와 같이 추가하고 저장합니다

"MountPoints": {
"/var/log/apache2": {
            "Source": "/var/log/docker_httpd01",
            "Destination": "/var/log/apache2",
            "RW": true,
            "Name": "",
            "Driver": "",
            "Type": "bind",
            "Propagation": "rprivate",
            "Spec": {
                "Type": "bind",
                "Source": "/var/log/docker_httpd01",
                "Target": "/var/log/apache2"
            },
            "SkipMountpointCreation": false
        }
}, 

5.Docker 을 다시 시작하고 서버의 폴더를 확인하면 컨테이너의 파일을 확인할수 있습니다.

[root@localhost /]# systemctl docker start
[root@localhost /]# ls /var/log/docker_httpd01/
access.log  error.log  other_vhosts_access.log

*만약 json파일 편집시 양식이 알아보기 어려우면 [중급]vim으로 json형식 편집하기 강좌를 확인하시면 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다.