2 回答

TA貢獻1946條經驗 獲得超4個贊
1、創建容器
docker run --name centos_ssh_ftp --privileged=true -p 10.0.75.1:3222:22 -p 10.0.75.1:3223:3223 -p 10.0.75.1:3224-3299:3224-3299 -v e:/softs:/softs -it centos_ssh
說明:
--name centos_ssh_ftp #指定創建的容器的名稱為centos_ssh_ftp
--privileged=true #授權,開啟系統文件的權限,比如可以編輯iptables
-p <宿主ip:宿主端口:容器端口> #將宿主機的指定端口映射到容器的指定端口,就是子網對外開放的端口,可以多個,也可以設置區間段如,3224-3299,這里我們把3222映射到容器的22,則外網通過宿主機的3222端口進行ssh連接,其他端口是為vsftpd被動模式準備的
-v <宿主機目錄:容器目錄> #將宿主機目錄映射到容器對應目錄,可以直接操作目錄和文件
-it <鏡像名稱> #以交互模式啟動鏡像,沒什么可說的,啟動完后會自動進入容器的root交互終端
2、安裝ssh
先查看是否已經安裝,看有沒有sshd
chkconfig --list #該命令可以看到本機上的服務和啟動狀態,以后設置服務開機子自啟動也會用到
yum -y
install openssh-server
安裝完畢,查看chkconfig --list
sshd
手動啟動sshd
service sshd start
設置開機自啟動
chkconfig sshd on
查看是否設置成功,2-5都是on就是設置成功
# chkconfig --list sshdsshd
0:off
1:off
2:on
3:on
4:on
5:on
6:off
此時在宿主機外通過ssh遠程連接工具遠程到宿主機ip(10.0.75.1)的端口(3222)應該就可以了
3、安裝vsftpd
查看是否已經安裝了vsftpd
rpm -aq|grep vsftpd
沒有則安裝
yum -y install vsftpd
添加一個ftp用戶用來登錄
useradd ftp
給ftp用戶添加密碼
passwd ftp
設置ftp用戶的根目錄,先創建目錄/data/ftp
usermod -d /data/ftp ftp
將該目錄的擁有者改為ftp
chown ftp /data/ftp
修改配置文件
vi
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO #不允許匿名登錄
ftpd_banner=welcome to ftp service #設置連接服務器后的歡迎信息
max_clients=200 #指明服務器總的客戶并發連接數為200
max_per_ip=3 #指明每個客戶機的最大連接數為3
chroot_local_user=YES #只能查看自己的根目錄
listen_port=3223 #設置FTP工作的端口號,默認的為21 這里改為3223, 如果還是21映射過來,能登錄卻取不到目錄
pasv_enable=YES #開啟被動模式
pasv_min_port=3224 #被動模式的最小端口
pasv_max_prot=3299 #被動模式使用的最大端口
pasv_addr_resolve=YES #啟用被動模式的回傳地址
pasv_address=10.0.75.1 #這里其實就是宿主機的ip
啟動vsftp
service vsftp start
使用ftp連接工具,看是否正確連接,能否創建刪除文件,是否可以訪問根目錄以外
設置開機自啟動
chkconfig vsftpd on
查看是否設置成功,2-5都是on就是設置成功
# chkconfig --list
vsftpd
vsftpd
0:off
1:off
2:on
3:on
4:on
5:on
6:off

TA貢獻1851條經驗 獲得超3個贊
步驟1:為我們的容器創建第一個鏡像
# 以 centos 鏡像作為基礎鏡像,我們啟動自己的容器并在其中執行/bin/bash命令
# 注:-t -i 參數用于創建一個虛擬的命令行。
sudo docker run -t -i centos /bin/bash
現在我們已經成功的運行了自己的第一個容器,并且進入到容器的命令行界面中。在容器中,我們執行下面的命令:
yum -y update # 更新軟件包
yum install which # 安裝which命令
yum install git # 安裝Git
安裝完成后,按 Ctrl + d 來退出容器的命令行。
# 執行sudo docker ps -a,可以看到被我們終止的容器
CONTAINER ID IMAGE COMMAND CREATED……
da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..
把我們所做的改變提交到一個新的容器:
# 這里我們創建一個自己的基礎容器,容器中安裝好了文章中所需的常用工具。讀者的容器 id 可能與文章中的有所不同,以上一步 docker ps -a 的結果為準。
sudo docker commit da90 custom/base
容器成功提交后,執行 sudo docker images ,我們會看到剛才提交的容器(如下面的結果所示)。我們就以這個容器為基礎容器,再來創建一個新的容器。
REPOSITORY TAG IMAGE ID CREATED
custom/base latest 05b6cecd370b 2 minutes ago
centos 6.4 539c0211cd76 10 months ago
centos latest 539c0211cd76 10 months ago…
步驟2:創建新的容器,并安裝 apache
# 以 custom/base 容器為基礎,運行一個新的容器。
sudo docker run -t -i custom/base /bin/bash
# 安裝 httpd
yum install httpd
步驟3:再次提交新的容器
按 Ctrl + d 來退出容器的命令行,然后執行命令:
# 這個命令會把步驟2中我們安裝 httpd 帶來的改變提交到新的名為 custom/httpd 的容器鏡像中。你的容器 id 可能會和文章中有所不同,以 sudo docker ps -a 命令的結果為準。
sudo docker commit aa6e2fc0b94c custom/httpd
你應該已經發現了,我們創建了一個帶有 http 服務器并可以復用的容器鏡像。你可以根據這種思想,為自己所需的每個組件都創建一個容器,然后把這些容器復用于開發環境或者生產環境。
步驟7:運行 http 服務器
# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.
# -v 參數把主機共享給虛擬機的一個卷掛載到容器中
# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile
# -p 參數把虛擬機的80端口映射到容器的80端口;虛擬機的80端口在 Vagrantfile 中被綁定到主機的8080端口,也就是:主機8080->虛擬機80->容器80
sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash
# 啟動 Apache
apachectl -k start
- 2 回答
- 0 關注
- 907 瀏覽
添加回答
舉報