도커 및 연결 설정

도커 및 연결 설정

공개 저장소에서 컨테이너를 가져와 여기에 패키지를 설치하고 싶습니다. 하지만 성공하지 못했습니다... 도움 좀 주실 수 있나요? 패키지 저장소에 대한 도커의 연결을 설정하는 방법은 무엇입니까?

[root@adf2 adf2_umb_docker]# docker ps -l

컨테이너 ID 이미지 명령 생성 상태 포트 이름

8a9a015c5301 devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi18.4 "bash" 8분 전 최대 8분 admiring_shirley

[root@adf2 adf2_umb_docker]# docker run devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi18.4 bash -c "apt-get -y install vim"

패키지 목록을 읽는 중...

종속성 트리 구축 중...

상태 정보를 읽는 중...

E: vim 패키지를 찾을 수 없습니다.

관리자가 방화벽에서 발생한 이 로그에 대해 알려줬습니다.

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8' 실패: iptables: 해당 이름과 일치하는 체인/대상/일치가 없습니다.

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' 실패: iptables: 체인/대상/일치 없음 그 이름.

Aug 23 23:02:08 adf2 Firewalld[5882]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -j DOCKER-ISOLATION' failed: iptables: 체인/타겟/일치 없음 이름.

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -s 192.168.0.0/20 ! -o docker0 -j MASQUERADE' 실패: iptables: 해당 이름과 일치하는 체인/대상/일치가 없습니다.

Aug 23 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -i docker0 -j RETURN' 실패: iptables: 잘못된 규칙(일치하는 규칙을 수행함) 그 체인에 존재합니까?).

Aug 23 23:02:08 adf2 Firewalld[5882]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: 잘못된 규칙(일치하는 규칙을 수행합니다) 그 체인에 존재합니까?).

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t 필터 -C FORWARD -i docker0 -o docker0 -j ACCEPT' 실패: iptables: 잘못된 규칙(수행됨) 해당 체인에 일치 규칙이 존재합니까?).

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT' 실패: iptables: 잘못된 규칙(해당 체인에 일치하는 규칙이 있습니까?)

8월 23일 23:02:08 adf2 Firewalld[5882]: 경고: 명령 실패: '/usr/sbin/iptables -w2 -t 필터 -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT' 실패: iptables: 잘못된 규칙(해당 체인에 일치하는 규칙이 존재합니까?)

8월 23일 23:02:09 adf2 Firewalld[5882]: 경고: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' 실패: iptables: 체인/대상/일치 없음 그 이름.

답변1

Docker에 패키지를 추가하는 방법은 아닙니다. 귀하의 방법을 사용하면 컨테이너 인스턴스가 자체 패키지를 추가하게 됩니다. 그러면 컨테이너가 인터넷에 액세스하려고 시도하게 되며 이는 로컬 규칙에 의해 금지될 수 있습니다. 이는 또한 미래의 문제를 야기합니다.

  • 이 컨테이너를 백업하는 방법
  • 필요한 경우 재구축하는 방법

올바른 방법은Dockerfile을 사용하여 이미지 파생:

FROM devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi/18.4
RUN apt-get -y install vim

그런 다음 다음을 사용하여 이미지를 만듭니다.

docker build -t "TheDerivedImageName" $TheDirectpryWithTheDockerfFile

그리고 필요한 경우 이미지에서 컨테이너 인스턴스를 생성하여 이미지를 실행합니다.

docker run TheDerivedImageName

Dockerfile 및 관련 파일은 호스트 파일입니다. 백업할 수 있고 소스 제어 시스템(git...)에 넣을 수 있으며 다른 사람들과 공유할 수 있습니다.

또한 Docker 이미지에 Vim을 설치하는 것은 불필요하며 Docker를 제대로 사용하지 않을 수도 있음을 암시합니다. 컨테이너에서 파일을 생성/편집해야 하는 경우 다음 중 하나를 수행합니다.

  • COPYDockerfile의 문을 사용하여 빌드 시 이미지에 넣습니다.
  • 다음을 사용하여 호스트의 파일이나 디렉터리를 컨테이너와 공유합니다."바인드 마운트", 호스트에서 편집하세요.

관련 정보