2 回答

TA貢獻1946條經(jīng)驗 獲得超4個贊
1、創(chuàng)建容器
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 #指定創(chuàng)建的容器的名稱為centos_ssh_ftp
--privileged=true #授權(quán),開啟系統(tǒng)文件的權(quán)限,比如可以編輯iptables
-p <宿主ip:宿主端口:容器端口> #將宿主機的指定端口映射到容器的指定端口,就是子網(wǎng)對外開放的端口,可以多個,也可以設(shè)置區(qū)間段如,3224-3299,這里我們把3222映射到容器的22,則外網(wǎng)通過宿主機的3222端口進行ssh連接,其他端口是為vsftpd被動模式準(zhǔn)備的
-v <宿主機目錄:容器目錄> #將宿主機目錄映射到容器對應(yīng)目錄,可以直接操作目錄和文件
-it <鏡像名稱> #以交互模式啟動鏡像,沒什么可說的,啟動完后會自動進入容器的root交互終端
2、安裝ssh
先查看是否已經(jīng)安裝,看有沒有sshd
chkconfig --list #該命令可以看到本機上的服務(wù)和啟動狀態(tài),以后設(shè)置服務(wù)開機子自啟動也會用到
yum -y
install openssh-server
安裝完畢,查看chkconfig --list
sshd
手動啟動sshd
service sshd start
設(shè)置開機自啟動
chkconfig sshd on
查看是否設(shè)置成功,2-5都是on就是設(shè)置成功
# chkconfig --list sshdsshd
0:off
1:off
2:on
3:on
4:on
5:on
6:off
此時在宿主機外通過ssh遠程連接工具遠程到宿主機ip(10.0.75.1)的端口(3222)應(yīng)該就可以了
3、安裝vsftpd
查看是否已經(jīng)安裝了vsftpd
rpm -aq|grep vsftpd
沒有則安裝
yum -y install vsftpd
添加一個ftp用戶用來登錄
useradd ftp
給ftp用戶添加密碼
passwd ftp
設(shè)置ftp用戶的根目錄,先創(chuàng)建目錄/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 #設(shè)置連接服務(wù)器后的歡迎信息
max_clients=200 #指明服務(wù)器總的客戶并發(fā)連接數(shù)為200
max_per_ip=3 #指明每個客戶機的最大連接數(shù)為3
chroot_local_user=YES #只能查看自己的根目錄
listen_port=3223 #設(shè)置FTP工作的端口號,默認(rèn)的為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連接工具,看是否正確連接,能否創(chuàng)建刪除文件,是否可以訪問根目錄以外
設(shè)置開機自啟動
chkconfig vsftpd on
查看是否設(shè)置成功,2-5都是on就是設(shè)置成功
# chkconfig --list
vsftpd
vsftpd
0:off
1:off
2:on
3:on
4:on
5:on
6:off

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