在Docker裡要從外部傳檔案至container裡是一件麻煩的問題,可從volumes Mount point丟檔在從container下執令移至相對的地方。
但有相對快速的方式就是在container裡建置ssh,之後可透過winscp工具透過ssh丟檔或編輯檔案,不需透過指令。
主機Port Map Docker container Port(以Portainer為例)
圖片裡的Host port 38622對應到container port 22
Debian內核為例
建置SSH
apt update
apt install openssh-server -y
設定SSH
需設置參數,否則會無法連線進來
echo "Port 22" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
設置密碼
原root沒有密碼,因此需要設置
passwd root
# Enter new UNIX password:
# Retype new UNIX password:
最後重啟ssh
/etc/init.d/ssh restart
CentOS內核為例
建置SSH
yum install -y passwd openssl openssh-server
設定SSH
缺少了一些 key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
設置參數
echo "UsePAM no" >> /etc/ssh/sshd_config
設置密碼
passwd root
# Enter new UNIX password:
# Retype new UNIX password:
最後啟動ssh
/usr/sbin/sshd -D