docker 基础
docker 基础.note获取docker 容器ip
- 获取一台或多台计算机的IP地址
docker-机器ip docker-machine ip docker-machine ip dev docker-machine ip dev dev2
一、docker运行容器
- 从网易蜂巢镜像仓库下载nginx镜像 ;
docker pull hub.c.163.com/library/node:latest
- 拉取镜像到本地,并查看本地的镜像:
docker images
- 运行容器
docker run [option] IMAGE [COMMOND] [ARG...]
demo # -d: 后台启动容器; --name:容器的别名,默认为随机的
docker run -d --name nginx1.0 hub.c.163.com/library/nginx
容器的操作:
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看最近一次运行的容器
docker ps -l
创建容器
docker create 容器名或者容器ID
启动容器
docker start [-i] 容器名
运行容器,相当于docker create + docker start
docker run 容器名或者容器ID
进入容器的命令行(退出容器后容器会停止)
docker attach 容器名或者容器ID bash
进入容器的命令行
docker exec -it 容器名或者容器ID bash docker exec -it nginx1.0 bash
停止容器
docker stop 容器名
查看WEB应用程序容器的进程
docker top 容器名
查看Docker的底层信息
docker inspect 容器名
二、docker 网络
linux使用namespace来进行资源的隔离;
- docker的网路类型分为:
- Bridge模式:桥接(默认的模式)
- host模式:容器将不会获得独立的network namespace,将和主机公用一个;即在docker中使用网络和主机上一样的;
- None:不与外界任何东西进行通讯
采用Bridge的时候需要和主机通讯,就需要使用端口映射;
- 端口映射 主机的8080端口映射到容器中的80端口
docker run -d --name nginx1.1 -p 8080:80 hub.c.163.com/library/nginx
docker run -itd --name nginx1.1 -p 8080:80 hub.c.163.com/library/nginx docker run -itd --name centos-test centos:centos7 docker run -itd -p 10022:22 centos7-ssh:latest bash docker run -d --name centos7-ssh -p 10033:22 centos7-ssh:latest /usr/sbin/sshd -D docker run -d --name centos7-php7 -p 10033:22 -p 10010:80 centos7-php7:latest /usr/sbin/sshd -D
- 拥有数据库权限
docker run -d -it --privileged --name centos7-php7 -p 10033:22 -p 10010:80 centos7-php7:latest /usr/sbin/init -D
http://www.freesion.com/article/7691159932/
DOCKER 使用中遇到的问题记录: CGROUPS: CANNOT FIND CGROUP MOUNT DESTINATION: UNKNOWN.
今天需要新建一个oracle容器,然后上服务器运行命令:
如图,出现了如下错误。
- time="2018-06-29T13:46:06+08:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
- 25870f5750677b55cdce523dd562a21122b91ff304cbeff3b45a95f716eaa66b
- D:\Docker Toolbox\docker.exe: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown.
使用docker-machine ssh default 进入虚拟机。
出现同样问题,然后在 https://github.com/moby/moby/issues/36016 找到了解决方案。
使用docker-machine ssh default 进入虚拟机,执行如下命令:
- sudo mkdir /sys/fs/cgroup/systemd
- sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
如图,容器创建成功。
贴下我的docker 版本,希望对遇到同样问题的朋友有所帮助:
- Containers: 3
- Running: 3
- Paused: 0
- Stopped: 0
- Images: 5
- Server Version: 18.05.0-ce
- Storage Driver: aufs
- Root Dir: /mnt/sda1/var/lib/docker/aufs
- Backing Filesystem: extfs
- Dirs: 46
- Dirperm1 Supported: true
- Logging Driver: json-file
- Cgroup Driver: cgroupfs
- Plugins:
- Volume: local
- Network: bridge host macvlan null overlay
- Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
- Swarm: inactive
- Runtimes: runc
- Default Runtime: runc
- Init Binary: docker-init
- containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
- runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
- init version: 949e6fa
- Security Options:
- seccomp
- Profile: default
- Kernel Version: 4.9.93-boot2docker
- Operating System: Boot2Docker 18.05.0-ce (TCL 8.2.1); HEAD : b5d6989 - Thu May 10 16:35:28 UTC 2018
- OSType: linux
- Architecture: x86_64
- CPUs: 16
- Total Memory: 15.65GiB
- Name: default
- ID: 4NBI:VJ3X:TDZC:QBVL:BSBF:5LLV:MPRD:UTNC:GZFZ:WULR:ZASY:ZISB
- Docker Root Dir: /mnt/sda1/var/lib/docker
- Debug Mode (client): false
- Debug Mode (server): false
- Registry: https://index.docker.io/v1/
- Labels:
- provider=virtualbox
- Experimental: false
- Insecure Registries:
- 127.0.0.0/8
- Live Restore Enabled: false
docker run --name runoob-php-nginx -it -p 9995:80 -d -v /nginx/www:/usr/share/nginx/html:ro -v /nginx/conf/conf.d:/etc/nginx/conf.d:ro --link myphp-fpm:php nginx