동경 126°7′, 북위 37°10′에 위치한다. 덕적도에서 남서쪽으로 3㎞, 인천에서는 54.6㎞ 지점에 있다. 면적은 3.54㎢이고, 해안선 길이는 11㎞이다.
원래 인천부에 속하였다가 1914년에 행정구역 개편으로 경기도 부천군에 편입되었다. 1973년에 경기도 옹진군으로 이속되었으며, 1995년에 인천광역시 옹진군에 속하게 되었다.
섬의 형태가 책상의 문갑(文匣)과 같다 하여 문갑도라 불리다가 현재에 와서 문갑(文甲)으로 고쳐 부르고 있다. 조선시대에는 독갑도(禿甲島)라고도 불렸는데, 섬의 형태가 ‘장수가 투구를 쓴 모양’이라는 뜻을 가진 것으로 전한다.
지형은 기복이 심하며(최고 높이 276m), 대부분 험준한 산지로 이루어져 있다. 섬의 동쪽 만입부에 경사가 비교적 완만한 지역이 있으며, 그곳에 농경지와 취락이 분포한다. 해안에는 단애(斷崖)가 발달하여 있다.
동북쪽의 만입부에는 넓은 사빈으로 이루어진 문갑해수욕장이 있다. 1월 평균기온은 -2.1℃, 8월 평균기온은 25.2℃, 연강수량은 1,234㎜이다.
2010년 기준으로 인구는 107명(남 51명, 여 56명)이 거주하고 있으며, 세대수는 59세대이다. 취락의 분포는 섬의 동부에 집중되어 있다. 토지이용 현황은 논 0.01㎢, 밭 0.09㎢, 임야 3.39㎢이다.
주민들은 농업과 어업에 종사하고 있다. 주요 농산물로는 쌀·보리·고구마·콩 등을 비롯하여, 배추·무·고추·마늘 등이 생산된다. 근해에서 꽃게와 새우가 많이 어획되며 김·굴 양식업도 활발하다.
정기여객선이 있으나 교통은 불편한 편이다. 깃대봉 봉우리에 삼신샘이 있는데 마을 사람들이 해산을 하면 이 우물에 와서 물을 떠놓고 복을 빌었다고 한다.