亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教一下docker的程序 linux能用嗎?

請教一下docker的程序 linux能用嗎?

ibeautiful 2019-11-20 18:14:32
docker的程序 linux能用嗎
查看完整描述

3 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

 1.啟動一個Docker容器
 ?。踨oot@localhost ~]# docker run -i -t Ubuntu /bin/bash
  Unable to find image ‘ubuntu’ locally
  Pulling repository ubuntu
  04c5d3b7b065: Download complete
  511136ea3c5a: Download complete
  c7b7c6419568: Download complete
  70c8faa62a44: Download complete
  d735006ad9c1: Download complete
  Status: Downloaded newer image for ubuntu:latest
  注:
  -i:打開容器中的STDIN
  -t:為容器分配一個偽tty終端
  從上面我們可以看出,首先Docker會檢查本地是否存在ubuntu鏡像,如果在本地沒有找到該鏡像的話,那么Docker就會去官方的Docker Hub Registry查看Docker Hub中是否有該鏡像。Docker一旦找到該鏡像,就會下載該鏡像并將其保存到本地的宿主機中。
  然后,Docker在文件系統內部用這個鏡像創建了一個新的容器。該容器擁有自己的網絡、IP地址,以及一個用來可以和宿主機進行通信的橋接網絡接口。最后,我們告訴Docker在新容器中要運行什么命令。
  當容器創建完畢之后,Docker就會執行容器中的/bin/bash命令。這時間我們就可以看到容器內的shell
  root@8c342c0c275c:/#
  注:8c342c0c275c代表容器的ID
  2.使用容器
  查看該容器的主機名
  root@8c342c0c275c:/# hostname
  8c342c0c275c
  可以看到,容器的主機名就是該容器的ID
  查看該主機的hosts文件
  root@8c342c0c275c:/# cat /etc/hosts
  172.17.0.2 8c342c0c275c
  ff00::0 ip6-mcastprefix
  ff02::1 ip6-allnodes
  ff02::2 ip6-allrouters
  127.0.0.1 localhost
  ::1 localhost ip6-localhost ip6-loopback
  fe00::0 ip6-localnet
  可以看到Docker為該容器的IP地址添加了一條主機配置項。
  查看該容器的IP地址
  root@8c342c0c275c:/# ip a
  1: lo: 《LOOPBACK,UP,LOWER_UP》 mtu 65536 qdisc noqueue state UNKNOWN group default
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
  4: eth0: 《BROADCAST,UP,LOWER_UP》 mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.2/16 scope global eth0
  valid_lft forever preferred_lft forever
  inet6 fe80::42:acff:fe11:2/64 scope link
  valid_lft forever preferred_lft forever
  查看容器中運行的進程
  root@8c342c0c275c:/# ps -aux
  USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  root 1 0.0 0.1 18168 1976 ? Ss 09:38 0:00 /bin/bash
  root 19 0.0 0.0 15568 1144 ? R+ 09:55 0:00 ps -aux



查看完整回答
反對 回復 2019-11-24
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

步驟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



查看完整回答
反對 回復 2019-11-24
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

1 docker pull mysql
2 docker run -v /data/var/mysql/:/var/lib/mysql -e YSQL_ROOT_PASSWORD=kS4pJUIb mysql
3 docker stop [CONTAINER ID]
4 docker run -it -v /data/var/mysql/:/var/lib/mysql mysql /bin/bash
5 mysqld_safe&
6 grant all privileges on *.* to 'wuxiao'@'%' identified by 'password';
7 docker cp [CONTAINER ID]:/etc/mysql/my.cnf /data/local/my.cnf
8 docker stop [CONTAINER ID]
9 docker run -d -p 3306:3306 -v /data/var/mysql/:/var/lib/mysql -v /data/local/my.cnf:/etc/mysql/my.cnf mysql
10 add [CMD] to /etc/rc.local
11 OK!

查看完整回答
反對 回復 2019-11-24
  • 3 回答
  • 0 關注
  • 1113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號