Docker須要一個64位系統的紅帽系統,內核的版本必須大於3.10,http://my.oschina.net/u/232595/blog/632278,建議安裝centos7php
參考資料:https://www.gitbook.com/book/yeasy/docker_practicehtml
安裝dockernode
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo yum makecache fast sudo yum -y install docker-ce
刪除dockermysql
yum remove docker*
啓動dockerlinux
sudo systemctl start docker
pull容器鏡像nginx
阿里雲鏡像https://dev.aliyun.com/search.htmlgit
docker pull registry.cn-hangzhou.aliyuncs.com/1hpc/centos
查看鏡像github
docker images
刪除鏡像redis
docker rmi 鏡像id
給鏡像打tagsql
docker tag 鏡像id 鏡像名:tag名
啓動容器
docker run 鏡像名
啓動結束的容器
docker start 容器名稱
啓動交互式容器(能夠輸入命令行)
docker run -t -i 鏡像名稱 /bin/bash
啓動交互式容器(能夠輸入命令行,同時能夠隱射端口)
docker run -t -i -v /localpath:/app -p ip:port1:port2 鏡像名稱 /bin/bash localpath爲本地地址 app爲docker內地址 ip爲訪問ip port1爲訪問端口 port2爲容器內應用端口號 例如容器內啓動mysql 3306端口 實體機訪問地址爲127.0.0.1 3307端口 docker run -t -i -p 127.0.0.1:3307:3306 鏡像名稱 /bin/bash 啓動mysql端口13306,其中innodb_use_native_aio用於處理「./ib_logfile101: 'aio write' returned OS error 122」這個問題 docker run -v /sharedata/mysql/test/data:/var/lib/mysql -v /sharedata/mysql/test/logs:/logs -e MYSQL_ROOT_PASSWORD=12345678a -p 13306:3306 --name mysql_test -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --innodb_use_native_aio=0 啓動redis docker run -v /sharedata/redis:/data -p 16379:6379 --name redis-test -d redis redis-server --appendonly yes 啓動nginx-php-fpm docker run -v /sharedata/www:/var/www/html -p 32770:80 --name www -d richarvey/nginx-php-fpm docker exec -it 容器名稱 /bin/bash 安裝redis擴展 pecl install redis cd /tmp/pear/download/ tar -xf redis-5.0.2.tgz docker-php-ext-configure /tmp/pear/download/redis-5.0.2 --enable-redis docker-php-ext-install /tmp/pear/download/redis-5.0.2 docker-php-ext-enable redis 安裝yaf擴展 pecl install yaf cd /tmp/pear/download/ tar -xf yaf-3.0.8.tgz docker-php-ext-configure /tmp/pear/download/yaf-3.0.8 --enable-yaf docker-php-ext-install /tmp/pear/download/yaf-3.0.8 docker-php-ext-enable yaf 安裝yaconf擴展 pecl install yaconf cd /tmp/pear/download tar -xf yaconf-1.0.7.tgz docker-php-ext-configure /tmp/pear/download/yaconf-1.0.7 --enable-yaconf docker-php-ext-install /tmp/pear/download/yaconf-1.0.7 docker-php-ext-enable yaconf 安裝swoole擴展 pecl install swoole cd /tmp/pear/download tar -xf swoole-4.4.7.tgz docker-php-ext-configure /tmp/pear/download/swoole-4.4.7 -enable-swoole docker-php-ext-install /tmp/pear/download/swoole-4.4.7 docker-php-ext-enable swoole 重啓phpfpm supervisorctl restart php-fpm 啓動node(參考文件https://www.imooc.com/article/19840) docker run -itd --name translate_node -v /sharedata/node/translate:/usr/src/translsate -p 81:81 node:latest
注意以上sharedata是vbox的共享文件夾
關閉容器
docker stop 容器名稱
刪除容器
docker rm 容器名稱
查看全部容器
docker container ls -a
查看運行的容器
docker ps -a
查看容器ip
docker inspect 容器名
查看容器端口隱射
docker port 容器名
進入容器
docker exec -it 容器id /bin/bash docker exec -u root -it 容器id /bin/bash
移除全部未使用的 volume:
docker volume prune
更改docker鏡像默認存儲路徑
默認狀況下,docker鏡像的默認存儲路徑是/var/lib/docker,這至關於直接掛載系統目錄下,而通常在搭系統時,這個區都不會太大,因此若是長期使用docker開發應用,就須要把默認的路徑更改到/home路徑下(這個區通常會分得比較多) 命令行: vi /usr/lib/systemd/system/docker.service 在文本內容ExecStart=/usr/bin/dockerd 後面添加以下內容: --graph <your path>使得變成: ExecStart=/usr/bin/dockerd \ --graph <your path> 而後從新加載配置文件 systemctl daemon-reload 最後重啓便可 systemctl restart docker
FAQ:
1unable to find user root no matching entries in passwd file
https://stackoverflow.com/questions/41636759/unable-to-find-user-root-no-matching-entries-in-passwd-file
2安裝php擴展:https://my.oschina.net/antsky/blog/1591418
3運行中的docker配置端口映射(添加/刪除)
添加端口映射
a, 獲取容器ip docker inspect $container_name | grep IPAddress b. 添加轉發規則 iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $docker_ip:$docker_port
刪除端口映射規則
a. 獲取規則編號 iptables -t nat -nL --line-number b. 根據編號刪除規則 iptables -t nat -D DOCKER $num
4Docker在windows下沒法開啓僞終端解決方法the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
解決辦法:docker-machine ssh default
5npm ERR! rofs EROFS: read-only file system, symlink
解決辦法:
VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
Or on Windows
VBoxManage.exe setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
Note: On Windows, always restart the Virtual Machine AND VirtualBox GUI.
安裝bc-math
docker-php-ext-install bcmath
http://www.javashuo.com/article/p-ambmshrj-c.html
安裝docker-composer
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose version