Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口。html
鏡像是一種輕量級、可執行的獨立軟件包,它包含運行某個軟件所需的全部內容,包括代碼、運行時、庫、環境變量和配置文件。mysql
容器是鏡像的運行時實例 - 實際執行時鏡像會在內存中變成什麼。默認狀況下,它徹底獨立於主機環境運行,僅在配置爲訪問主機文件和端口的狀況下才執行此操做。linux
docker安裝nginx
yum install docker
查看docker版本redis
docker version
查看docker信息sql
docker info
docker安裝成功測試docker
docker run hello-world
docker採用C/S的模式shell
Docker鏡像:Docker鏡像運行後變成容器json
Docker Registry: Registry是Docker鏡像的中央倉庫centos
docker images
修改 /etc/docker/daemon.json
, 改成須要加速的倉庫,建議使用阿里雲鏡像加速,好比:
{ "registry-mirrors": ["https://av57nxi9.mirror.aliyuncs.com"] }
而後重啓doker
sudo systemctl daemon-reload sudo systemctl restart docker
能夠不加 -f
docker logs -f 4871c4b47f83
進入容器內部
docker exec -it redis /bin/bash
退出容器
ctrl+D
拉取鏡像
docker pull nginx
運行nginx
docker run --name some-nginx -d -p 8080:80 nginx
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name: 生成的容器名字
-d: 後臺運行
-p:映射端口(映射外部端口:容器內端口)
運行docker並修改靜態文件目錄
docker run -p 8081:80 --name mynginx -v /home/oskyhang/config/nginx/html:/usr/share/nginx/html:ro --privileged=true -d nginx
--privileged=true : centos7中安全模塊selinux把權限禁掉了,加上此命令能夠開啓訪問權限,否則會替換失敗
docker run -p 80:80 --name mynginx -v /home/data/nginx/html:/usr/share/nginx/html:ro -v /home/data/nginx/conf/extra/:/etc/nginx/extra -v /home/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/data/nginx/logs:/var/log/nginx --privileged=true -d nginx
先rm正在運行或中止的container,而後再remove鏡像,不然會出現下面的異常
Error response from daemon: conflict: unable to delete fce289e99eb9 (must be forced) - image is being used by stopped container 0fcb6b830ca2
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest fce289e99eb9 10 days ago 1.84 kB
docker.io/nginx latest 7042885a156a 13 days ago 109 MB[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e83ea93731a hello-world "/hello" 35 seconds ago Exited (0) 35 seconds ago hungry_volhard
0fcb6b830ca2 hello-world "/hello" 17 minutes ago Exited (0) 17 minutes ago thirsty_pasteur[root@localhost ~]# docker rm 4e83ea93731a
4e83ea93731a
[root@localhost ~]# docker rm 0fcb6b830ca2
0fcb6b830ca2[root@localhost ~]# docker rmi fce289e99eb9
Untagged: docker.io/hello-world:latest
Untagged: docker.io/hello-world@sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
Deleted: sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3
docker create --name mymysql -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mymysql:5.6