真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux進入容器的命令 linux 進入容器

linux怎么啟動docker

2.1 在測試機啟動容器,安裝ssh

創(chuàng)新互聯(lián)主營愛輝網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,App定制開發(fā),愛輝h5成都微信小程序搭建,愛輝網(wǎng)站營銷推廣歡迎愛輝等地區(qū)企業(yè)咨詢

docker run -i -t ubuntu /bin/bash #此方式運行的容器,退出后容器就會關(guān)閉。

apt-get install openssh-server #安裝ssh

#需要修改/etc/sshd/sshd_config文件中內(nèi)容

PermitRootLogin yes

UsePAM no

2.2 啟動ssh,容器以后臺方式運行

docker run -d -p 50001:22 容器id /usr/sbin/sshd-D

#容器id可通過 docker ps-a查看,最上面的為最新的。

2.3 通過ssh連接到容器安裝軟件

ssh root@127.0.0.1-p 50001

#連上后想裝什么就裝什么,可使用exit退出容器,但后臺還會運行。

2.4 服務安裝完成后,停止容器。

docker stop 容器id #停止運行的容器

2.5 把容器提交生成最新的鏡像

docker commit 容器id debian02 #把這個容器提交生成新的debian02鏡像(該鏡像是原始鏡像與容器的整合)

2.6 打包鏡像

docker save debian02 /root/debian02.tar #debian02鏡像打包

2.7 在另外的機器上導入鏡像

docker load debian02.tar #導入鏡像

docker images #查看存在的鏡像

2.8 啟動容器

docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local

#此處是我測試機器啟動命令,指定主機名與端口映射。

#啟動后,后面又裝了程序,開機自啟動命令可放在/etc/rc.local文件中。

docker容器遷移簡單方便,可以任意的拷貝部署,以后再也不怕新部署環(huán)境了,一堆依賴裝的想死有木有。

3、關(guān)于docker容器的端口映射

由于docker容器的IP地址每次啟動都會變,所以不適用于手動添加端口映射(難道每次重啟都來查看容器的IP么?),所以需要每次啟動容器時由docker程序自動添加NAT規(guī)則,前期盡可能的把需要映射的端口在創(chuàng)建容器時配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local

#此處我把mysql,redis,nginx,ssh都進行了映射。

后續(xù)對于docker容器的管理,記住容器的名稱,如上述名稱是activemq,則使用docker stop,start來控制容器進程。docker stop activemq

docker start activemq

當然,也可以不讓docker每次啟動容器修改容器的IP地址,參考如下:

docker網(wǎng)絡配置:

4、關(guān)于docker容器的多程序開機自動運行

docker容器每次啟動時,開機自啟動的命令都要在啟動容器前指定。如 docker run -I -t debian /bin/bash命令,只會運行/bin/bash程序,其它的程序都不會運行,對于要跑多個程序的容器特別糾結(jié)。

多程序開機自動運行方法:

可把前面所說的啟動命令換成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要開機自的啟動命令放在/etc/rc.local中,就可以達到多程序開機自啟動了。

后臺運行則是:docker run -d -p 50001:22 debian /etc/rc.local。注意:run命令是創(chuàng)建一個新的容器,如果要啟動一個曾經(jīng)運行過的容器,則用命令docker ps -a中找對應的容器ID,然后使用docker start 容器ID即可。

linux服務器端有一個mysql,如何部署到docker容器里

步驟1:為我們的容器創(chuàng)建第一個鏡像

# 以 centos 鏡像作為基礎鏡像,我們啟動自己的容器并在其中執(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)建一個自己的基礎容器,容器中安裝好了文章中所需的常用工具。讀者的容器 id 可能與文章中的有所不同,以上一步 docker ps -a 的結(jié)果為準。

sudo docker commit da90 custom/base

容器成功提交后,執(zhí)行 sudo docker images ,我們會看到剛才提交的容器(如下面的結(jié)果所示)。我們就以這個容器為基礎容器,再來創(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 容器為基礎,運行一個新的容器。

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é)果為準。

sudo docker commit aa6e2fc0b94c custom/httpd

你應該已經(jīng)發(fā)現(xiàn)了,我們創(chuàng)建了一個帶有 http 服務器并可以復用的容器鏡像。你可以根據(jù)這種思想,為自己所需的每個組件都創(chuàng)建一個容器,然后把這些容器復用于開發(fā)環(huán)境或者生產(chǎn)環(huán)境。

步驟7:運行 http 服務器

# -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

php如何通過linux命令,在docker中執(zhí)行一個文件并且接收docker容器中執(zhí)行之后,控制臺的返回的結(jié)果?

Docker中我們一般會有兩種執(zhí)行命令的方式,一種是直接進入容器的命令行,在終端執(zhí)行并查看結(jié)果,一種是在后臺執(zhí)行,并不會在終端查看結(jié)果。

1、進入容器命令行

su root

docker run -i -t ubuntu:16.04/bin/bash#或者執(zhí)行下面這句docker run -it ubuntu:16.04/bin/bash

-i和-t的作用是幫助你進入交互模式,如果不加這部分,你將無法進入容器內(nèi)部,更別說使用命令行了。/bin/bash的意思就是使用容器的命令行來輸入命令。執(zhí)行結(jié)果如下:

root@7d150a0fb029:/#

root后面跟的就是容器id,表明你已經(jīng)進入容器,可以輸入命令了,你可以輸入一些常用命令試試:

root@7d150a0fb029:/# docker run -i -t ubuntu:16.04 /bin/bash

結(jié)果輸出了鏡像的內(nèi)核版本信息:

Linux version 4.13.0-36-generic (buildd@lgw01-amd64-033)(gcc version 5.4.020160609(Ubuntu5.4.0-6ubuntu1~16.04.9))#40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018

通過exit可退出容器。

2、后臺執(zhí)行命令

輸入下面的代碼,-d表示的就是后臺運行,這點可以直接通過docker run –help查看該命令的功能。下面這句話的意思就是在鏡像的程序中添加引號內(nèi)的代碼,并在后臺運行。

docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1;done"

輸出結(jié)果不會顯示運行的結(jié)果,而是給出新建的容器id,這里說明一下,每次輸入docker run命令都會新建一個容器,產(chǎn)生一個新的id。

輸出結(jié)果如下:

c7188be9bd7b5c0aa91c5eeb72013996c89bfdc2181d1a5ff7f880af6f8aff99

查看一下正在運行的容器:

root@cdl-XPS15R:/home/cdl# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c7188be9bd7b ubuntu:16.04"/bin/sh -c 'while t…"13 seconds ago Up11 seconds keen_vaughan1b6ba17f7df7 ubuntu:16.04"/bin/bash"2 minutes ago Exited(0)2 minutes ago cocky_noether7d150a0fb029 ubuntu:16.04"/bin/bash"4 minutes ago Exited(0)2 minutes ago hopeful_banach

這里會發(fā)現(xiàn),第一個容器的id和后臺運行的容器id前幾位一模一樣,但是長度要長很多,其實是一樣的,只不過通過ps命令打印輸出時為了方便顯示只顯示了前幾位。

如果想要進入后臺運行的容器的命令行而不創(chuàng)建新的容器,只需要輸入以下命令:

#Exec是進入已經(jīng)存在的容器,run是創(chuàng)建新容器docker Exec-it c7188be9bd7b /bin/bash

輸入哪個更長的id也是一樣的效果:

docker Exec -it c7188be9bd7b5c0aa91c5eeb72013996c89bfdc2181d1a5ff7f880af6f8aff99 /bin/bash

輸出結(jié)果都是:

root@c7188be9bd7b:/#


分享名稱:linux進入容器的命令 linux 進入容器
文章來源:http://weahome.cn/article/ddccgei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部